internal TcpServer.ReturnValue <int[]> GetRemoteExpressionNodeId(AutoCSer.Reflection.RemoteType[] types) { RemoteExpression.ServerNodeIdChecker.Input inputParameter = new RemoteExpression.ServerNodeIdChecker.Input { Types = types }; RemoteExpression.ServerNodeIdChecker.Output outputParameter = default(RemoteExpression.ServerNodeIdChecker.Output); TcpServer.ReturnType returnType = Get(RemoteExpression.ServerNodeIdChecker.Input.CommandInfo, ref inputParameter, ref outputParameter); return(new TcpServer.ReturnValue <int[]> { Type = returnType, Value = outputParameter.Return }); }
/// <summary> /// 获取远程表达式服务端节点标识 /// </summary> /// <param name="data"></param> /// <returns></returns> private bool getRemoteExpressionNodeId(ref SubArray<byte> data) { AutoCSer.Net.TcpServer.ReturnType returnType = AutoCSer.Net.TcpServer.ReturnType.Unknown; try { RemoteExpression.ServerNodeIdChecker.Input inputParameter = default(RemoteExpression.ServerNodeIdChecker.Input); if (DeSerialize(ref data, ref inputParameter, false)) { RemoteExpression.ServerNodeIdChecker.Output outputParameter = new RemoteExpression.ServerNodeIdChecker.Output { Return = RemoteExpression.Node.Get(inputParameter.Types) }; return Send(TcpSimpleServer.OutputInfo.RemoteExpressionNodeId, ref outputParameter); } returnType = AutoCSer.Net.TcpServer.ReturnType.ServerDeSerializeError; } catch (Exception error) { returnType = AutoCSer.Net.TcpServer.ReturnType.ServerException; Log(error); } return SendOutput(returnType); }
/// <summary> /// 获取远程表达式服务端节点标识 /// </summary> /// <param name="data"></param> internal void GetRemoteExpressionNodeId(ref SubArray<byte> data) { AutoCSer.Net.TcpServer.ReturnType returnType = AutoCSer.Net.TcpServer.ReturnType.Unknown; try { RemoteExpression.ServerNodeIdChecker.Input inputParameter = default(RemoteExpression.ServerNodeIdChecker.Input); if (DeSerialize(ref data, ref inputParameter, false)) { if (Server.ServerAttribute.RemoteExpressionTask == TcpServer.ServerTaskType.Synchronous) { TcpServer.ReturnValue<RemoteExpression.ServerNodeIdChecker.Output> outputParameter = new RemoteExpression.ServerNodeIdChecker.Output { Return = RemoteExpression.Node.Get(inputParameter.Types) }; Push<RemoteExpression.ServerNodeIdChecker.Output>(ServerSocket.CommandIndex, IsBuildOutputThread ? RemoteExpression.ServerNodeIdChecker.Output.OutputThreadInfo : RemoteExpression.ServerNodeIdChecker.Output.OutputInfo, ref outputParameter); } else (AutoCSer.Threading.RingPool<GetRemoteExpressionNodeIdServerCall>.Default.Pop() ?? new GetRemoteExpressionNodeIdServerCall()).Set(this, ref Server.ServerAttribute, inputParameter.Types); return; } returnType = AutoCSer.Net.TcpServer.ReturnType.ServerDeSerializeError; } catch (Exception error) { returnType = AutoCSer.Net.TcpServer.ReturnType.ServerException; AddLog(error); } Push(returnType); }