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)); }
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))); }