On Aug 26, 2011, at 7:12 AM, Julien Vermillard wrote:

> On Fri, Aug 26, 2011 at 4:07 PM, Emmanuel Lecharny <[email protected]> 
> wrote:
>> 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.
>> 
> 
> Well if it's just for demuxing I proposed few mails ago this solution
> : http://s.apache.org/A9W

I think we need to make graphing a 1st class citizen and not buried inside 
another filter class. 


Regards,
Alan

Reply via email to