/// <summary> /// 获取接口 /// </summary> /// <typeparam name="T"></typeparam> /// <returns></returns> public T GetRPC <T>() { return(RPC_Call.GetRPC <T>()); }
public void RegModule(object o) { RPC_Call.RegModule(o); }
public void BinaryInput(byte[] data) { ReadBytes read = new ReadBytes(data); int lengt; int cmd; if (read.ReadInt32(out lengt) && read.Length == lengt && read.ReadInt32(out cmd)) { switch (cmd) { case 1001001: { ZYClient_Result_Return val; if (read.ReadObject <ZYClient_Result_Return>(out val)) { RPC_Call.SetReturnValue(val); } } break; case 1001000: { RPCCallPack tmp; if (read.ReadObject <RPCCallPack>(out tmp)) { System.Threading.Tasks.Task.Factory.StartNew((pack) => { CallContext.SetData("Current", this); string msg; object returnValue; if (RPC_Call.RunModule(pack as RPCCallPack, out msg, out returnValue)) { ZYClient_Result_Return var = new ZYClient_Result_Return() { Id = tmp.Id, CallTime = tmp.CallTime, Arguments = tmp.Arguments }; if (returnValue != null) { var.Return = Serialization.PackSingleObject(returnValue.GetType(), returnValue); } Client.BeginSendData(BufferFormat.FormatFCA(var)); } else { if (MsgOut != null) { MsgOut(tmp.CallModule + "->" + tmp.Method + " Call Failure"); } } }, tmp, CancellationToken.None, TaskCreationOptions.None, OrderSchedulerRead).ContinueWith(task => { try { task.Wait(); } catch (Exception er) { if (MsgOut != null) { MsgOut(er.ToString()); } } }); } } break; default: { if (DataOn != null) { DataOn(cmd, read); } } break; } } }
public void Call <Mode>(Expression <Action <Mode> > action) { RPC_Call.Call <Mode>(action); }
public void BinaryInput(byte[] data) { ReadBytes read = new ReadBytes(data); int lengt; int cmd; if (read.ReadInt32(out lengt) && read.Length == lengt && read.ReadInt32(out cmd)) { switch (cmd) { case 1001001: { Result_Have_Return val; if (read.ReadObject <Result_Have_Return>(out val)) { RPC_Call.SetReturnValue(val); } } break; case 1001000: { ThreadPool.QueueUserWorkItem((o) => { RPCCallPack tmp; ReadBytes pread = (ReadBytes)o; if (pread.ReadObject <RPCCallPack>(out tmp)) { object returnValue; try { if (RPC_Call.RunModule(tmp, tmp.NeedReturn, out returnValue)) { if (tmp.NeedReturn) { Result_Have_Return var = new Result_Have_Return() { Id = tmp.Id, Arguments = tmp.Arguments }; if (returnValue != null) { var.Return = Serialization.PackSingleObject(returnValue.GetType(), returnValue); } Client.BeginSendData(BufferFormat.FormatFCA(var)); } } } catch (Exception er) { LogAction.Err(er.ToString()); } } }, read); } break; default: { if (DataOn != null) { DataOn(cmd, read); } } break; } } }
public Result Call <Mode, Result>(Expression <Func <Mode, Result> > action) { return(RPC_Call.Call <Mode, Result>(action)); }
public void CallAsyn <Mode>(Expression <Action <Mode> > action, Action <AsynReturn> Callback) { RPC_Call.CallAsyn <Mode>(action, Callback); }
public void CallAsyn <Mode, Result>(Expression <Func <Mode, Result> > action, Action <AsynReturn> Callback) { RPC_Call.CallAsyn <Mode, Result>(action, Callback); }
public void BinaryInput(byte[] data) { ReadBytes read = new ReadBytes(data); int lengt; int cmd; if (read.ReadInt32(out lengt) && read.Length == lengt && read.ReadInt32(out cmd)) { switch (cmd) { case 1001001: { ZYClient_Result_Return val; if (read.ReadObject <ZYClient_Result_Return>(out val)) { RPC_Call.SetReturnValue(val); } } break; case 1001000: { ThreadPool.QueueUserWorkItem((o) => { RPCCallPack tmp; ReadBytes pread = (ReadBytes)o; if (pread.ReadObject <RPCCallPack>(out tmp)) { object returnValue; CallContext.SetData("Current", this); if (RPC_Call.RunModule(tmp, out returnValue)) { if (tmp.IsNeedReturn) { ZYClient_Result_Return var = new ZYClient_Result_Return() { Id = tmp.Id, CallTime = tmp.CallTime, Arguments = tmp.Arguments }; if (returnValue != null) { var.Return = Serialization.PackSingleObject(returnValue.GetType(), returnValue); var.ReturnType = returnValue.GetType(); } Client.Send(BufferFormat.FormatFCA(var)); } } } }, read); } break; default: { if (DataOn != null) { DataOn(cmd, read); } } break; } } }
public void BinaryInput(byte[] data) { ReadBytes read = new ReadBytes(data); int lengt; int cmd; if (read.ReadInt32(out lengt) && read.Length == lengt && read.ReadInt32(out cmd)) { switch (cmd) { case 1001001: { ZYClient_Result_Return val; if (read.ReadObject <ZYClient_Result_Return>(out val)) { RPC_Call.SetReturnValue(val); } } break; case 1001000: { System.Threading.Tasks.Task.Factory.StartNew(() => { RPCCallPack tmp; if (read.ReadObject <RPCCallPack>(out tmp)) { object returnValue; CallContext.SetData("Current", this); if (RPC_Call.RunModule(tmp, out returnValue)) { if (tmp.IsNeedReturn) { ZYClient_Result_Return var = new ZYClient_Result_Return() { Id = tmp.Id, CallTime = tmp.CallTime, Arguments = tmp.Arguments }; if (returnValue != null) { var.Return = Serialization.PackSingleObject(returnValue.GetType(), returnValue); var.ReturnType = returnValue.GetType(); } Client.Send(BufferFormat.FormatFCA(var)); } } } }, CancellationToken.None, TaskCreationOptions.None, OrderSchedulerRead); } break; default: { if (DataOn != null) { DataOn(cmd, read); } } break; } } }