public static Task <TResult> InvokeT <TResult>(this ServiceDelegateStub serviceDelegateStub, uint methodId, string forwardKey, params object[] args) { var op = serviceDelegateStub.Invoke <TResult>(methodId, forwardKey, args); var tcs = new TaskCompletionSource <TResult>(); op.Callback = operation => { if (!operation.IsComplete) { tcs.SetException(new Exception()); } else { tcs.SetResult(operation.Result); } }; return(tcs.Task); }
public static void Multicast(this ServiceDelegateStub serviceDelegateStub, uint methodId, int forwardId, params object[] args) { var forwarder = serviceDelegateStub.DataSender as IMulticastSender; if (forwarder == null) { return; } var buffer = new MemoryStream(32); var bufferWriter = new BinaryWriter(buffer); var uuidBytes = serviceDelegateStub.DataSender.Uuid.ToByteArray(); bufferWriter.Write(uuidBytes.Length); bufferWriter.Write(uuidBytes); bufferWriter.Write(0); serviceDelegateStub.MethodSerializer.Write(methodId, args, bufferWriter); forwarder.MulticastSend(buffer.GetBuffer(), forwardId, serviceDelegateStub.RoutingRule); }
public DbClientNotifyDelegate(IDataSender dataSender) { serviceDelegateStub = new ServiceDelegateStub(dataSender, DbClientNotifySerializer.Instance, MetaData.GetServiceRoutingRule(AutoInit.DbClient)); dataSender.RegisterDelegate(serviceDelegateStub, AutoInit.DbClient); }
public WatcherServiceNotifyDelegate(IDataSender dataSender) { serviceDelegateStub = new ServiceDelegateStub(dataSender, WatcherServiceNotifySerializer.Instance, MetaData.GetServiceRoutingRule(AutoInit.WatcherService)); dataSender.RegisterDelegate(serviceDelegateStub, AutoInit.WatcherService); }
public Logic2SchedulerServiceDelegate(IDataSender dataSender) { serviceDelegateStub = new ServiceDelegateStub(dataSender, Logic2SchedulerSerializer.Instance, MetaData.GetServiceRoutingRule(AutoInit.Logic2Scheduler)); dataSender.RegisterDelegate(serviceDelegateStub, AutoInit.Logic2Scheduler); }
private Logic2CliServiceDelegate(ServiceDelegateStub serviceDelegateStub, byte[] forwardKey) { this.forwardKey = forwardKey; this.serviceDelegateStub = serviceDelegateStub; }
public Scene2CliServiceDelegate(IDataSender dataSender) { serviceDelegateStub = new ServiceDelegateStub(dataSender, Scene2CliSerializer.Instance, MetaData.GetServiceRoutingRule(AutoInit.Scene2Cli)); dataSender.RegisterDelegate(serviceDelegateStub, AutoInit.Scene2Cli); }
public Cli2LogicServiceDelegate(IDataSender dataSender) { serviceDelegateStub = new ServiceDelegateStub(dataSender, Cli2LogicSerializer.Instance, MetaData.GetServiceRoutingRule(AutoInit.Cli2Logic)); dataSender.RegisterDelegate(serviceDelegateStub, AutoInit.Cli2Logic); }
public Cli2LoginServiceDelegate(IDataSender dataSender) { serviceDelegateStub = new ServiceDelegateStub(dataSender, Cli2LoginSerializer.Instance, MetaData.GetServiceRoutingRule(AutoInit.Cli2Login)); dataSender.RegisterDelegate(serviceDelegateStub, AutoInit.Cli2Login); }