Ejemplo n.º 1
0
        public void Register <T>(
            T value,
            Action <T, string> callback) where T : struct, Enum
        {
            var method = Ssci.Register(value, callback);

            MethodIds.Add(method.Id);
        }
Ejemplo n.º 2
0
        public void Register(
            string methodId,
            Action <string, string> callback)
        {
            var method = Ssci.Register(methodId, callback);

            MethodIds.Add(method.Id);
        }
Ejemplo n.º 3
0
        public void Register(
            string methodId,
            Expression <Action> implementExpression)
        {
            var method = Ssci.Register(methodId, implementExpression);

            MethodIds.Add(method.Id);
        }
Ejemplo n.º 4
0
        public void Register <TInterface, TDelegate>(
            Expression <Action <TInterface> > interfaceExpression,
            Expression <TDelegate> implementExpression)
            where TDelegate : Delegate
        {
            var method = Ssci.Register(interfaceExpression, implementExpression);

            MethodIds.Add(method.Id);
        }
Ejemplo n.º 5
0
        public void Register <TDelegate>(
            string methodId,
            Expression <TDelegate> implementExpression)
            where TDelegate : Delegate
        {
            var method = Ssci.Register(methodId, implementExpression);

            MethodIds.Add(method.Id);
        }
Ejemplo n.º 6
0
        public void Register <TInterface>(
            Expression <Action <TInterface> > interfaceExpression,
            Expression <Action> implementExpression)
            where TInterface : class
        {
            var method = Ssci.Register(interfaceExpression, implementExpression);

            MethodIds.Add(method.Id);
        }
Ejemplo n.º 7
0
 public void Invoke(string methodId, IPeer peer, ResponseCallback responseCallback, params object[] objects)
 {
     Ssci.Invoke(methodId, peer, responseCallback, (serializable) => {
         foreach (var item in objects)
         {
             serializable.SerializableObject(item);
         }
     });
 }
Ejemplo n.º 8
0
        public void Invoke <T>(Func <Expression <Action <T> > > func, ResponseCallback responseCallback)
        {
            var methodTuple = RpcRequestManager.CreateMethodTuple(func);
            var methodId    = methodTuple.RpcMethod.GetId();

            if (!Connections.TryGetValue(methodId, out var peer))
            {
                Logger.Warn($"服务器端没有注册{methodId}方法!");
                return;
            }

            Ssci.Invoke(func, peer, responseCallback);
        }
Ejemplo n.º 9
0
        public void Invoke(string methodId, IPeer peer, dynamic func, dynamic[] objects)
        {
            if (string.IsNullOrEmpty(methodId))
            {
                throw new ArgumentException(nameof(methodId));
            }

            if (peer == null)
            {
                throw new ArgumentNullException(nameof(peer));
            }

            ResponseCallback responseCallback = (rm, sd) => {
                func?.Invoke(rm, sd);
            };

            Ssci.Invoke(methodId, peer, responseCallback, PacketShell(objects));
        }
Ejemplo n.º 10
0
        public void TestRpcService()
        {
            PoolAllocator <IWriteStream> .SetPool((arguments => new WriteStream()));

            Ssci.Invoke <ITest>(() => (rpc) => rpc.Test(200), null, null);
        }
Ejemplo n.º 11
0
 public static void Invoke(string methodId, IPeer peer, ResponseCallback responseCallback, Action <ISerializable> action)
 {
     Ssci.Invoke(methodId, peer, responseCallback, action);
 }
Ejemplo n.º 12
0
 public void Invoke <T>(Func <Expression <Action <T> > > func, IPeer peer, ResponseCallback responseCallback)
 {
     Ssci.Invoke(func, peer, responseCallback);
 }