예제 #1
0
 void HandleRequest(RPCRequest Rpc, SerializableAdapter Adapter, TCPConnection Connection)
 {
     if (_Rpcs.ContainsKey(Rpc.GetType()))
     {
         RPCResponse response = _Rpcs[Rpc.GetType()](Rpc);
         response.RequestId = Rpc.Id;
         Adapter.Send(response, Connection);
     }
 }
예제 #2
0
        public Promise Call(RPCRequest Request, SerializableAdapter Adapter, TCPConnection Connection)
        {
            Promise p = new Promise();

            _Promises.Add(_NextId, p);
            Request.Id = _NextId;
            _NextId++;
            Adapter.Send(Request, Connection);
            return(p);
        }
예제 #3
0
 public void HandleMessage(Serializable Message, SerializableAdapter Adapter, TCPConnection Connection)
 {
     if (Message is RPCRequest)
     {
         HandleRequest((RPCRequest)Message, Adapter, Connection);
     }
     else if (Message is RPCResponse)
     {
         HandleResponse((RPCResponse)Message);
     }
 }