On 8/26/11 3:44 PM, Alan D. Cabrera wrote:
On Aug 26, 2011, at 6:40 AM, Julien Vermillard wrote:
On Fri, Aug 26, 2011 at 3:24 PM, Alan D. Cabrera<[email protected]> wrote:
On Aug 26, 2011, at 4:14 AM, Julien Vermillard wrote:
I modified the API to remove IoFilterChain. Now you are supposed to
give a list of filter to the service before starting it :
// create the fitler chain for this service
List<IoFilter> filters = new ArrayList<IoFilter>();
filters.add(new LoggingFilter("byte log filter"));
filters.add(new MyCodecFilter());
filters.add(new LoggingFilter("pojo log filter"));
filters.add(newMyProtocolLogicFilter());
acceptor.setFilters(filters);
acceptor.bind(...);
How do we make chains where two filters feed into one or one filter feeds two
filters? If you look in my sandbox we can accommodate this via:
static import a.m.util.Util. linkParentWithChild; // to be written
IoFilter foo = new FooFilter();
LinkStateFilter link = new LinkStateFilter();
IoFilter checksum = new ChecksumFilter();
IoFilter log = new LogFilter();
link.addLinkStateListener(foo);
linkParentWithChild(foo, checksum);
linkParentWithChild(link, checksum);
linkParentWithChild(checksum, log);
acceptor.setFilters(foo);
About the code in the sandbox :
http://svn.apache.org/repos/asf/mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/core/IoFilter.java
I see no IoFilter.addLinkStateListener(..) method, am I looking at the
right place ?
Oops, it was meant to just be a sketch. :)
About the "filters feed into one or one filter feeds two filters", do
you have a concrete use case in mind for that ?
The above example does, Foo and the link state filter. I'm sure that we've
discussed this before. Another example is a mux/demux situation. How would
all of this fit into the grand scheme of things?
Yeah, it really should be a graph of filters, not a list of filters.
--
Regards,
Cordialement,
Emmanuel Lécharny
www.iktek.com