コード例 #1
0
 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
     });
 }
コード例 #2
0
 /// <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);
 }
コード例 #3
0
 /// <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);
 }