Ejemplo n.º 1
0
 public RPCExecManager.RPCWait WaitHashCall <T>(long timeOut, FRPCTypeReturnCallBack <T> cb,
                                                ERouteTarget route     = ERouteTarget.Self,
                                                Net.NetConnection conn = null,
                                                RPCRouter router       = null) where T : RPCReturnValue, new()
 {
     AssertReturnType(this.GetType(), typeof(T));
     if (cb == null)
     {
         return(WaitDoCallImpl_Hash(timeOut, null, route, conn, router));
     }
     RPCExecManager.FRPCReturnCallBack fn = (PkgReader data, bool isTimeOut) =>
     {
         if (isTimeOut)
         {
             cb(null, true);
             return;
         }
         T retValue = new T();
         retValue.ReadObject(data);
         cb(retValue, false);
     };
     return(WaitDoCallImpl_Hash(timeOut, fn, route, conn, router));
 }
Ejemplo n.º 2
0
        public RPCExecManager.RPCWait S2S_Call <T>(long timeOut, ERouteTarget target = ERouteTarget.Data, FRPCTypeReturnCallBack <T> cb = null) where T : RPCReturnValue, new()
        {
            AssertReturnType(this.GetType(), typeof(T));
            if (cb == null)
            {
                return(WaitDoCallImpl(timeOut, null, ERouteTarget.Self, RPCExecManager.Insance.GetServerConnect(target)));
            }

            RPCExecManager.FRPCReturnCallBack fn = (PkgReader data, bool isTimeOut) =>
            {
                if (isTimeOut)
                {
                    cb(null, true);
                    return;
                }
                T retValue = new T();
                retValue.ReadObject(data);
                cb(retValue, false);
            };
            return(WaitDoCallImpl(timeOut, fn, ERouteTarget.Self, RPCExecManager.Insance.GetServerConnect(target)));
        }