Hi Niklas, Thanks for your reply. I just wanted to make sure we were on the same wavelength before I started thrashing out code :o)
I ** was ** thinking earlier that the only way we'd be able to get the required propagation (cleanly) would be to have a new "next handler" per chain traversal - so Im glad I didn't miss anything silly :o) Makes much more sense now. I think there's just one more thing to discuss / clear up about the approach. At first I was wondering why you wanted to pass the handler through at all (IoSession already has a "getHandler" method). However, this seemed to hint at the reason: > The tail filter in a chain will always get the IoHandler from the NextFilter and call it. > When combining IoFilterChains A and B, B is the IoHandler of A while the real > IoHandler is the IoHandler of B. Is the reason to enable a chain to masquerade as a handler, and have transparent chain "chaining" ?). If so, Im wondering if maybe there is a simpler way to "chain chains"....? (E.g, if we're jumping through hoops to chain them, maybe the "special" head and tail filters don't really belong in the chain (per se) at all...? That way, you'd just have something like IoFilterChain#chain(IoFilterChain next). Any special meaning to the tail operations would be at a higher level. (Again, clear in my head - but that doesn't mean anything :o) I think that's the only area that I'd like to discuss further before knocking out the code. Thanks again for your reply - its been really useful, Dave This e-mail and any attachment is for authorised use by the intended recipient(s) only. It may contain proprietary material, confidential information and/or be subject to legal privilege. It should not be copied, disclosed to, retained or used by, any other party. If you are not an intended recipient then please promptly delete this e-mail and any attachment and all copies and inform the sender. Thank you.
