getTemplate method
Get the TypeTemplate for a given class Id.
Class GUID.
Implementation
AsyncReply<TypeTemplate?> getTemplate(Guid classId) {
if (_templates.containsKey(classId))
return AsyncReply<TypeTemplate?>.ready(_templates[classId]);
else if (_templateRequests.containsKey(classId))
return _templateRequests[classId] as AsyncReply<TypeTemplate?>;
var reply = new AsyncReply<TypeTemplate>();
_templateRequests.add(classId, reply);
(sendRequest(IIPPacketAction.TemplateFromClassId)..addGuid(classId)).done()
..then((rt) {
if (rt != null) {
_templateRequests.remove(classId);
_templates[(rt[0] as TypeTemplate).classId] = rt[0] as TypeTemplate;
Warehouse.putTemplate(rt[0] as TypeTemplate);
reply.trigger(rt[0]);
} else {
reply.triggerError(Exception("Null response"));
}
})
..error((ex) {
reply.triggerError(ex);
});
return reply;
}