Trustin Lee wrote:

2005/11/15, Niklas Therning <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>:

    I just realized that when calling IoSession.write() the concrete
    IoSession implementation will always know the final destination of the
    write event. For SocketSessionImpl the final destination is always
    SocketIoProcessor.

    So the IoFilterChain methods for downstream events look like this:

    void write( IoSession session, WriteRequest writeRequest,
    IoProcessor p
    ) throws Exception;

    SocketSessionImpl's write() method looks like this:

    public WriteFuture write( Object message ) {
        this.filterChain.write(this, new WriteRequest(),
    SocketIoProcesso.getInstance());
    }


What is the difference from overriding the head filter of sessionmanager-level chain to call SocketIoProcessor.flush() explicitly? We can still get rid of SocketSessionManagerFilterChain without introducing a new parameter.

If the user can change the filter chain of an IoAcceptor by calling setFilterChain() you won't be able to override any method to inject this behaviour. Likewise if there is a bind(address, chain, handler) method. Unless you copy the user supplied chain into some IoFilterChain implementation which we have control over. And from what I understand copying is out of the question. Or am I missing something?

I'll check in this change so you can see it more clearly.

Please do that. Maybe that will make me understand! :)

/Niklas

Reply via email to