private static int Main(string[] args) { Assembly.Load("GeneratedCode"); var loop = new Example.Loop(); var e = Astrum.Item.Manager.Create(0); Astrum.Item.Manager.Publish(e, loop); loop.Connect(args[1], Convert.ToUInt16(args[2]), WorkerType); return(0); }
public static async Task <CreateEntityResponseOp> Publish(Entity e, Example.Loop loop) { var t = new TaskCompletionSource <CreateEntityResponseOp>(); ulong cb = 0; loop.Execute((view, connection) => { var req = connection.SendCreateEntityRequest(e, null, 100); cb = view.OnCreateEntityResponse(op => { if (op.RequestId != req) { return; } t.SetResult(op); }); }); var result = await t.Task; Console.WriteLine("Entity published " + result.EntityId); loop.Execute((view, conn) => view.Remove(cb)); return(result); }