/// <inheritdoc/> public override void SessionClosed(INextFilter nextFilter, IoSession session) { if ((_eventTypes & IoEventType.SessionClosed) == IoEventType.SessionClosed) { IoFilterEvent ioe = new IoFilterEvent(nextFilter, IoEventType.SessionClosed, session, null); FireEvent(ioe); } else { base.SessionClosed(nextFilter, session); } }
/// <inheritdoc/> public override void SessionIdle(INextFilter nextFilter, IoSession session, IdleStatus status) { if ((_eventTypes & IoEventType.SessionIdle) == IoEventType.SessionIdle) { IoFilterEvent ioe = new IoFilterEvent(nextFilter, IoEventType.SessionIdle, session, status); FireEvent(ioe); } else { base.SessionIdle(nextFilter, session, status); } }
/// <inheritdoc/> public override void FilterClose(INextFilter nextFilter, IoSession session) { if ((_eventTypes & IoEventType.Close) == IoEventType.Close) { IoFilterEvent ioe = new IoFilterEvent(nextFilter, IoEventType.Close, session, null); FireEvent(ioe); } else { base.FilterClose(nextFilter, session); } }
/// <inheritdoc/> public override void FilterWrite(INextFilter nextFilter, IoSession session, IWriteRequest writeRequest) { if ((_eventTypes & IoEventType.Write) == IoEventType.Write) { IoFilterEvent ioe = new IoFilterEvent(nextFilter, IoEventType.Write, session, writeRequest); FireEvent(ioe); } else { base.FilterWrite(nextFilter, session, writeRequest); } }
/// <inheritdoc/> public override void MessageReceived(INextFilter nextFilter, IoSession session, Object message) { if ((_eventTypes & IoEventType.MessageReceived) == IoEventType.MessageReceived) { IoFilterEvent ioe = new IoFilterEvent(nextFilter, IoEventType.MessageReceived, session, message); FireEvent(ioe); } else { base.MessageReceived(nextFilter, session, message); } }
/// <inheritdoc/> public override void ExceptionCaught(INextFilter nextFilter, IoSession session, Exception cause) { if ((_eventTypes & IoEventType.ExceptionCaught) == IoEventType.ExceptionCaught) { IoFilterEvent ioe = new IoFilterEvent(nextFilter, IoEventType.ExceptionCaught, session, cause); FireEvent(ioe); } else { base.ExceptionCaught(nextFilter, session, cause); } }
protected abstract void Filter(IoFilterEvent ioe);
protected void FireEvent(IoFilterEvent ioe) { _executor.Execute(ioe); }