Esempio n. 1
0
            public override void PacketSend(ISessionFilterChain filterChain, IPacket packet)
            {
                if (packet.Buffer.Remaining > 0)
                {
                    _parentSession.SocketSendAsync(packet, _future);
                }

                base.PacketSend(filterChain, packet);
            }
            public override void PacketReceived(ISessionFilterChain filterChain, IPacket packet)
            {
                if (packet == null || filterChain.Session != base._session)
                {
                    base.PacketReceived(filterChain, packet);
                }
                else
                {
                    lock (this)
                    {
                        if (_content == null)
                        {
                            _content  = packet.Buffer;
                            _endPoint = packet.EndPoint;
                        }
                        else
                        {
                            IBuffer content = packet.Buffer;

                            if (_content.Remaining < content.Remaining)
                            {
                                IBuffer buffer = BufferFactory.GetBuffer(
                                    _content.Position + content.Remaining);

                                buffer.Put(_content.Flip());
                                _content.Release();
                                _content = buffer;
                            }

                            _content.Put(content);
                            _content.Flip();
                        }

                        if (_content != null)
                        {
                            try
                            {
                                base.Recognize(_content, _endPoint);
                            }
                            finally
                            {
                                if (_content.HasRemaining)
                                {
                                    _content.Compact();
                                }
                                else
                                {
                                    _content.Release();
                                    _content  = null;
                                    _endPoint = null;
                                }
                            }
                        }
                    }
                }
            }
            public override void SessionStateChanged(ISessionFilterChain filterChain)
            {
                if (filterChain.Session == base._session && base._session.SessionState == SessionState.Closed)
                {
                    lock (this)
                    {
                        if (_content != null)
                        {
                            _content.Release();
                            _content = null;
                        }

                        _endPoint = null;
                    }
                }

                base.SessionStateChanged(filterChain);
            }
            public override void PacketReceived(ISessionFilterChain filterChain, IPacket packet)
            {
                if (packet == null || filterChain.Session != base._session)
                {
                    base.PacketReceived(filterChain, packet);
                }
                else
                {
                    IBuffer content = packet.Buffer;

                    if (content != null)
                    {
                        try
                        {
                            base.Recognize(content, packet.EndPoint);
                        }
                        finally
                        {
                            content.Release();
                        }
                    }
                }
            }
Esempio n. 5
0
 public virtual void SessionStateChanged(ISessionFilterChain filterChain)
 {
 }
Esempio n. 6
0
 public virtual void SessionTimeout(ISessionFilterChain filterChain)
 {
 }
Esempio n. 7
0
 public virtual void PacketSent(ISessionFilterChain filterChain, IPacket packet)
 {
 }
Esempio n. 8
0
 public virtual void SessionClosed(ISessionFilterChain filterChain)
 {
 }
Esempio n. 9
0
 public override void ExceptionCaught(ISessionFilterChain filterChain, Exception cause)
 {
     ((SessionBase)filterChain.Session).SessionCaughtException(cause);
     base.ExceptionCaught(filterChain, cause);
 }
Esempio n. 10
0
 public virtual void PacketReceived(ISessionFilterChain filterChain, IPacket packet)
 {
 }
Esempio n. 11
0
 public void ObjectSent(ISessionFilterChain filterChain, object obj)
 {
     _dispatcher.Dispatch(() => filterChain.ObjectSent(obj));
 }
Esempio n. 12
0
 public void SessionStateChanged(ISessionFilterChain filterChain)
 {
     _dispatcher.Dispatch(() => filterChain.SessionStateChanged());
 }
Esempio n. 13
0
 public virtual void ExceptionCaught(ISessionFilterChain filterChain, Exception exception)
 {
 }
Esempio n. 14
0
 public override void ObjectReceived(ISessionFilterChain filterChain, object obj)
 {
     ((SessionBase)filterChain.Session).SessionReceivedObject(obj);
     base.ObjectReceived(filterChain, obj);
 }
Esempio n. 15
0
 public override void ObjectSent(ISessionFilterChain filterChain, object obj)
 {
     ((SessionBase)filterChain.Session).SessionSentObject(obj);
     base.ObjectSent(filterChain, obj);
 }
Esempio n. 16
0
 public override void SessionTimeout(ISessionFilterChain filterChain)
 {
     //((SessionBase)filterChain.Session).SessionTimeout();
     base.SessionTimeout(filterChain);
 }
Esempio n. 17
0
 public override void SessionStateChanged(ISessionFilterChain filterChain)
 {
     ((SessionBase)filterChain.Session).SessionStateChanged();
     base.SessionStateChanged(filterChain);
 }
Esempio n. 18
0
 public void ExceptionCaught(ISessionFilterChain filterChain, Exception cause)
 {
     //_dispatcher.Dispatch(filterChain.Session, () => filterChain.ExceptionCaught(cause));
 }
Esempio n. 19
0
 public virtual void PacketSend(ISessionFilterChain filterChain, IPacket packet)
 {
     filterChain.PacketSend(packet);
 }
Esempio n. 20
0
 public void PacketSent(ISessionFilterChain filterChain, IPacket packet)
 {
     _dispatcher.Dispatch(() => filterChain.PacketSent(packet));
 }
Esempio n. 21
0
 public virtual void ObjectReceived(ISessionFilterChain filterChain, object obj)
 {
 }
Esempio n. 22
0
 public void SessionTimeout(ISessionFilterChain filterChain)
 {
     _dispatcher.Dispatch(() => filterChain.SessionTimeout());
 }
Esempio n. 23
0
 public virtual void ObjectSent(ISessionFilterChain filterChain, object obj)
 {
 }