Exemple #1
0
            /// <summary>
            /// ref / out 参数测试
            /// </summary>
            /// <param name="left">加法左值</param>
            /// <param name="right">加法右值</param>
            /// <param name="product">乘积</param>
            /// <returns>和</returns>
            public AutoCSer.Net.TcpServer.ReturnValue <AutoCSer.Net.TcpServer.ReturnValue <int> > Add(int left, ref int right, out int product)
            {
                AutoCSer.Net.TcpServer.AutoWaitReturnValue <TcpOpenServer._p2> _wait_ = AutoCSer.Net.TcpServer.AutoWaitReturnValue <TcpOpenServer._p2> .Pop();

                try
                {
                    AutoCSer.Net.TcpOpenServer.ClientSocketSender _socket_ = _TcpClient_.Sender;
                    if (_socket_ != null)
                    {
                        TcpOpenServer._p1 _inputParameter_ = new TcpOpenServer._p1
                        {
                            left = left,

                            right = right,
                        };
                        TcpOpenServer._p2 _outputParameter_ = new TcpOpenServer._p2
                        {
                            right = right,
                        };
                        AutoCSer.Net.TcpServer.ReturnType _returnType_ = _socket_.WaitGet <TcpOpenServer._p1, TcpOpenServer._p2>(_c0, ref _wait_, ref _inputParameter_, ref _outputParameter_);

                        right = _outputParameter_.right;

                        product = _outputParameter_.product;
                        return(new AutoCSer.Net.TcpServer.ReturnValue <AutoCSer.Net.TcpServer.ReturnValue <int> > {
                            Type = _returnType_, Value = _outputParameter_.Return
                        });
                    }
                }
                finally
                {
                    if (_wait_ != null)
                    {
                        AutoCSer.Net.TcpServer.AutoWaitReturnValue <TcpOpenServer._p2> .PushNotNull(_wait_);
                    }
                }
                product = default(int);
                return(new AutoCSer.Net.TcpServer.ReturnValue <AutoCSer.Net.TcpServer.ReturnValue <int> > {
                    Type = AutoCSer.Net.TcpServer.ReturnType.ClientException
                });
            }
Exemple #2
0
 /// <summary>
 /// 客户端验证
 /// </summary>
 /// <param name="client"></param>
 /// <param name="sender"></param>
 /// <returns></returns>
 public bool Verify(Session.TcpOpenClient client, AutoCSer.Net.TcpOpenServer.ClientSocketSender sender)
 {
     return(client.login(sender, user, password).Value);
 }
            public AutoCSer.Net.TcpServer.ReturnValue <int> this[int index]
            {
                get
                {
                    AutoCSer.Net.TcpServer.AutoWaitReturnValue <TcpOpenServer._p1> _wait_ = AutoCSer.Net.TcpServer.AutoWaitReturnValue <TcpOpenServer._p1> .Pop();

                    try
                    {
                        AutoCSer.Net.TcpOpenServer.ClientSocketSender _socket_ = _TcpClient_.Sender;
                        if (_socket_ != null)
                        {
                            TcpOpenServer._p2 _inputParameter_ = new TcpOpenServer._p2
                            {
                                index = index,
                            };
                            AutoCSer.Net.TcpServer.ReturnValue <TcpOpenServer._p1> _outputParameter_ = _socket_.WaitGet <TcpOpenServer._p2, TcpOpenServer._p1>(_c1, ref _wait_, ref _inputParameter_);
                            return(new AutoCSer.Net.TcpServer.ReturnValue <int> {
                                Type = _outputParameter_.Type, Value = _outputParameter_.Value.Return
                            });
                        }
                    }
                    finally
                    {
                        if (_wait_ != null)
                        {
                            AutoCSer.Net.TcpServer.AutoWaitReturnValue <TcpOpenServer._p1> .PushNotNull(_wait_);
                        }
                    }
                    return(new AutoCSer.Net.TcpServer.ReturnValue <int> {
                        Type = AutoCSer.Net.TcpServer.ReturnType.ClientException
                    });
                }
                set
                {
                    AutoCSer.Net.TcpServer.AutoWaitReturnValue _wait_ = AutoCSer.Net.TcpServer.AutoWaitReturnValue.Pop();
                    try
                    {
                        AutoCSer.Net.TcpOpenServer.ClientSocketSender _socket_ = _TcpClient_.Sender;
                        if (_socket_ != null)
                        {
                            TcpOpenServer._p3 _inputParameter_ = new TcpOpenServer._p3
                            {
                                index = index,

                                value = value,
                            };
                            AutoCSer.Net.TcpServer.ReturnType _returnType_ = _socket_.WaitCall(_c2, ref _wait_, ref _inputParameter_);
                            if (_returnType_ == AutoCSer.Net.TcpServer.ReturnType.Success)
                            {
                                return;
                            }
                            throw new Exception(_returnType_.ToString());
                        }
                    }
                    finally
                    {
                        if (_wait_ != null)
                        {
                            AutoCSer.Net.TcpServer.AutoWaitReturnValue.PushNotNull(_wait_);
                        }
                    }
                    throw new Exception(AutoCSer.Net.TcpServer.ReturnType.ClientException.ToString());
                }
            }