コード例 #1
0
 /// <summary>
 /// 获取远程表达式数据
 /// </summary>
 /// <param name="data"></param>
 internal void GetRemoteExpression(ref SubArray<byte> data)
 {
     AutoCSer.Net.TcpServer.ReturnType returnType = AutoCSer.Net.TcpServer.ReturnType.Unknown;
     try
     {
         RemoteExpression.ClientNode inputParameter = default(RemoteExpression.ClientNode);
         if (DeSerialize(ref data, ref inputParameter, false))
         {
             if (Server.ServerAttribute.RemoteExpressionTask == TcpServer.ServerTaskType.Synchronous)
             {
                 TcpServer.ReturnValue<RemoteExpression.ReturnValue.Output> outputParameter = new RemoteExpression.ReturnValue.Output { Return = inputParameter.GetReturnValue() };
                 Push<RemoteExpression.ReturnValue.Output>(ServerSocket.CommandIndex, IsBuildOutputThread ? RemoteExpression.ReturnValue.Output.OutputThreadInfo : RemoteExpression.ReturnValue.Output.OutputInfo, ref outputParameter);
             }
             else (AutoCSer.Threading.RingPool<GetRemoteExpressionServerCall>.Default.Pop() ?? new GetRemoteExpressionServerCall()).Set(this, ref Server.ServerAttribute, ref inputParameter);
             return;
         }
         returnType = AutoCSer.Net.TcpServer.ReturnType.ServerDeSerializeError;
     }
     catch (Exception error)
     {
         returnType = AutoCSer.Net.TcpServer.ReturnType.ServerException;
         AddLog(error);
     }
     Push(returnType);
 }
コード例 #2
0
 /// <summary>
 /// 获取远程表达式数据
 /// </summary>
 /// <param name="node">远程表达式节点</param>
 /// <returns>返回值类型</returns>
 private TcpServer.ReturnValue <RemoteExpression.ReturnValue> getRemoteExpression(ref RemoteExpression.ClientNode node)
 {
     RemoteExpression.ReturnValue.Output outputParameter = default(RemoteExpression.ReturnValue.Output);
     TcpServer.ReturnType returnType = Get(RemoteExpression.ClientNode.CommandInfo, ref node, ref outputParameter);
     return(new TcpServer.ReturnValue <RemoteExpression.ReturnValue> {
         Type = returnType, Value = outputParameter.Return
     });
 }
コード例 #3
0
 /// <summary>
 /// 获取远程表达式数据
 /// </summary>
 /// <param name="data"></param>
 /// <returns></returns>
 private bool getRemoteExpression(ref SubArray<byte> data)
 {
     AutoCSer.Net.TcpServer.ReturnType returnType = AutoCSer.Net.TcpServer.ReturnType.Unknown;
     try
     {
         RemoteExpression.ClientNode inputParameter = default(RemoteExpression.ClientNode);
         if (DeSerialize(ref data, ref inputParameter, false))
         {
             RemoteExpression.ReturnValue.Output outputParameter = new RemoteExpression.ReturnValue.Output { Return = inputParameter.GetReturnValue() };
             return Send(TcpSimpleServer.OutputInfo.RemoteExpression, ref outputParameter);
         }
         returnType = AutoCSer.Net.TcpServer.ReturnType.ServerDeSerializeError;
     }
     catch (Exception error)
     {
         returnType = AutoCSer.Net.TcpServer.ReturnType.ServerException;
         Log(error);
     }
     return SendOutput(returnType);
 }