getLinkTemplates method

AsyncReply<List<TypeTemplate>> getLinkTemplates(
  1. String link
)

Implementation

AsyncReply<List<TypeTemplate>> getLinkTemplates(String link) {
  var reply = new AsyncReply<List<TypeTemplate>>();

  var l = DC.stringToBytes(link);

  (sendRequest(IIPPacketAction.LinkTemplates)
        ..addUint16(l.length)
        ..addDC(l))
      .done()
    ..then((rt) {
      List<TypeTemplate> templates = [];
      // parse templates

      if (rt != null) {
        DC data = rt[0];
        //var offset = 0;
        for (int offset = 0; offset < data.length;) {
          var cs = data.getUint32(offset);
          offset += 4;
          templates.add(TypeTemplate.parse(data, offset, cs));
          offset += cs;
        }
      } else {
        reply.triggerError(Exception("Null response"));
      }

      reply.trigger(templates);
    })
    ..error((ex) {
      reply.triggerError(ex);
    });

  return reply;
}