2
0
mirror of https://github.com/esiur/esiur-dart.git synced 2025-05-06 12:02:57 +00:00

async put

This commit is contained in:
Ahmed Zamil 2021-02-20 21:54:46 +03:00
parent cb8e6d5430
commit 53d801bc38
3 changed files with 33 additions and 14 deletions

View File

@ -30,5 +30,6 @@ enum ExceptionCode
PropertyNotFound,
SetPropertyDenied,
ReadOnlyProperty,
GeneralFailure
GeneralFailure,
AddToStoreFailed
}

View File

@ -1521,11 +1521,14 @@ class DistributedConnection extends NetworkConnection with IStore
// create the resource
var resource = null; //Activator.CreateInstance(type, args) as IResource;
Warehouse.put(resource, name, store as IStore, parent);
Warehouse.put(resource, name, store as IStore, parent).then<dynamic>((ok) {
sendReply(IIPPacketAction.CreateResource, callback)
.addUint32(resource.instance.id)
.done();
}).error((ex){
// send some error
sendError(ErrorType.Management, callback, ExceptionCode.AddToStoreFailed.index);
});
});
});
@ -2303,12 +2306,12 @@ class DistributedConnection extends NetworkConnection with IStore
{
//print("New template ");
// ClassId, ResourceAge, ResourceLink, Content
if (resource == null)
Warehouse.put(dr, id.toString(), this, null, tmp);
var d = rt[3] as DC;
// ClassId, ResourceAge, ResourceLink, Content
if (resource == null)
{
Warehouse.put(dr, id.toString(), this, null, tmp).then<dynamic>((ok){
Codec.parsePropertyValueArray(d, 0, d.length, this).then((ar)
{
//print("attached");
@ -2316,6 +2319,19 @@ class DistributedConnection extends NetworkConnection with IStore
_resourceRequests.remove(id);
reply.trigger(dr);
});
}).error((ex) => reply.triggerError(ex));
}
else
{
Codec.parsePropertyValueArray(d, 0, d.length, this).then((ar)
{
//print("attached");
dr.attach(ar);
_resourceRequests.remove(id);
reply.trigger(dr);
});
}
}).error((ex)
{
reply.triggerError(ex);

View File

@ -384,6 +384,8 @@ class Warehouse {
}).error((ex) => rt.triggerError(ex));
}
// return new name
return rt;
}