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);
        }
Example #2
0
        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);
        }
Example #3
0
 public DbClientNotifyDelegate(IDataSender dataSender)
 {
     serviceDelegateStub = new ServiceDelegateStub(dataSender, DbClientNotifySerializer.Instance, MetaData.GetServiceRoutingRule(AutoInit.DbClient));
     dataSender.RegisterDelegate(serviceDelegateStub, AutoInit.DbClient);
 }
Example #4
0
 public WatcherServiceNotifyDelegate(IDataSender dataSender)
 {
     serviceDelegateStub = new ServiceDelegateStub(dataSender, WatcherServiceNotifySerializer.Instance, MetaData.GetServiceRoutingRule(AutoInit.WatcherService));
     dataSender.RegisterDelegate(serviceDelegateStub, AutoInit.WatcherService);
 }
Example #5
0
 public Logic2SchedulerServiceDelegate(IDataSender dataSender)
 {
     serviceDelegateStub = new ServiceDelegateStub(dataSender, Logic2SchedulerSerializer.Instance, MetaData.GetServiceRoutingRule(AutoInit.Logic2Scheduler));
     dataSender.RegisterDelegate(serviceDelegateStub, AutoInit.Logic2Scheduler);
 }
Example #6
0
 private Logic2CliServiceDelegate(ServiceDelegateStub serviceDelegateStub, byte[] forwardKey)
 {
     this.forwardKey = forwardKey;
     this.serviceDelegateStub = serviceDelegateStub;
 }
Example #7
0
 public Scene2CliServiceDelegate(IDataSender dataSender)
 {
     serviceDelegateStub = new ServiceDelegateStub(dataSender, Scene2CliSerializer.Instance, MetaData.GetServiceRoutingRule(AutoInit.Scene2Cli));
     dataSender.RegisterDelegate(serviceDelegateStub, AutoInit.Scene2Cli);
 }
Example #8
0
 public Cli2LogicServiceDelegate(IDataSender dataSender)
 {
     serviceDelegateStub = new ServiceDelegateStub(dataSender, Cli2LogicSerializer.Instance, MetaData.GetServiceRoutingRule(AutoInit.Cli2Logic));
     dataSender.RegisterDelegate(serviceDelegateStub, AutoInit.Cli2Logic);
 }
Example #9
0
 public Cli2LoginServiceDelegate(IDataSender dataSender)
 {
     serviceDelegateStub = new ServiceDelegateStub(dataSender, Cli2LoginSerializer.Instance, MetaData.GetServiceRoutingRule(AutoInit.Cli2Login));
     dataSender.RegisterDelegate(serviceDelegateStub, AutoInit.Cli2Login);
 }