コード例 #1
0
ファイル: Client.cs プロジェクト: zhangzheng1205/AutoCSer
 internal AutoCSer.Net.TcpServer.AwaiterBox <ReturnParameter> QueryAsynchronousAwaiter(DataStructure.Abstract.Node node)
 {
     if (isMasterClient)
     {
         return(MasterClient.QueryAsynchronousAwaiter(new OperationParameter.QueryNode {
             Node = node
         }));
     }
     return(slaveClient.QueryAsynchronousAwaiter(new OperationParameter.QueryNode {
         Node = node
     }));
 }
コード例 #2
0
ファイル: Client.cs プロジェクト: zhangzheng1205/AutoCSer
        /// <summary>
        /// 异步查询数据
        /// </summary>
        /// <param name="node"></param>
        /// <returns></returns>
        internal async Task <AutoCSer.Net.TcpServer.ReturnValue <ReturnParameter> > MasterQueryAsynchronousAwaiter(ShortPath.Parameter.Node node)
        {
            ShortPath.Node shortPath  = node.ShortPath;
            ReturnType     returnType = shortPath.Check(MasterClient);

            if (returnType == ReturnType.Success)
            {
                AutoCSer.Net.TcpServer.ReturnValue <ReturnParameter> value = await MasterClient.QueryAsynchronousAwaiter(new OperationParameter.ShortPathQueryNode {
                    Node = node
                });

                if (value.Type == Net.TcpServer.ReturnType.Success && shortPath.ReCreate(MasterClient, ref value.Value.Parameter.ReturnType))
                {
                    return(await MasterClient.QueryAsynchronousAwaiter(new OperationParameter.ShortPathQueryNode {
                        Node = node
                    }));
                }
                return(value);
            }
            return(new ReturnParameter(returnType));
        }