示例#1
0
        /// <summary>
        /// Applies a connection filter to the stream.
        /// </summary>
        private void ApplyConnectionFilter()
        {
            lock (_stateLock)
            {
                if (State == ConnectionState.Creating)
                {
                    State = ConnectionState.Open;
                    if (_filterContext.Connection != _libuvStream)
                    {
                        _filteredStreamAdapter = new FilteredStreamAdapter(ConnectionId, _filterContext.Connection, Memory, ThreadPool, _bufferSizeControl);
                        SocketInput            = _filteredStreamAdapter.SocketInput;
                        SocketOutput           = _filteredStreamAdapter.SocketOutput;
                        _readInputTask         = _filteredStreamAdapter.ReadInputAsync();
                    }
                    else
                    {
                        SocketInput  = _rawSocketInput;
                        SocketOutput = _rawSocketOutput;
                    }

                    this.OnConnect();
                }
                else
                {
                    this.Close(CloseType.SocketDisconnect);
                }
            }
        }
        private void ApplyConnectionFilter()
        {
            lock (_stateLock)
            {
                if (_connectionState == ConnectionState.CreatingFrame)
                {
                    _connectionState = ConnectionState.Open;

                    if (_filterContext.Connection != _libuvStream)
                    {
                        _filteredStreamAdapter = new FilteredStreamAdapter(ConnectionId, _filterContext.Connection, Memory, Log, ThreadPool);

                        SocketInput  = _filteredStreamAdapter.SocketInput;
                        SocketOutput = _filteredStreamAdapter.SocketOutput;

                        _readInputContinuation = _filteredStreamAdapter.ReadInputAsync();
                    }
                    else
                    {
                        SocketInput  = _rawSocketInput;
                        SocketOutput = _rawSocketOutput;
                    }

                    PrepareRequest = _filterContext.PrepareRequest;

                    _frame = CreateFrame();
                    _frame.Start();
                }
                else
                {
                    ConnectionControl.End(ProduceEndType.SocketDisconnect);
                }
            }
        }
示例#3
0
        private void ApplyConnectionFilter()
        {
            var filteredStreamAdapter = new FilteredStreamAdapter(_filterContext.Connection, Memory2, Log);

            SocketInput  = filteredStreamAdapter.SocketInput;
            SocketOutput = filteredStreamAdapter.SocketOutput;

            _frame = new Frame(this);
            _frame.Start();
        }
示例#4
0
        private void ApplyConnectionFilter()
        {
            if (_filterContext.Connection != _libuvStream)
            {
                _filteredStreamAdapter = new FilteredStreamAdapter(ConnectionId, _filterContext.Connection, Thread.Memory, Log, ThreadPool, _bufferSizeControl);

                _frame.SocketInput  = _filteredStreamAdapter.SocketInput;
                _frame.SocketOutput = _filteredStreamAdapter.SocketOutput;

                _readInputTask = _filteredStreamAdapter.ReadInputAsync();
            }

            _frame.PrepareRequest = _filterContext.PrepareRequest;
            _frame.Start();
        }