dev@grizzly.java.net

Re: Multiple protocol support by Controller

From: Jeanfrancois Arcand <Jeanfrancois.Arcand_at_Sun.COM>
Date: Mon, 11 Jun 2007 12:05:01 -0400

Hi Kshitiz,

Kshitiz Saxena wrote:
> Hi Jeanfrancois,
>
> Please see my comments inline.
>
> Thanks,
> Kshitiz
>
> Jeanfrancois Arcand wrote:
>> Hi Kshitiz,
>>
>> Kshitiz Saxena wrote:
>>> Hi,
>>>
>>> One question on SelectorHandler:
>>>
>>> We can add multiple SelectorHandler associated with Controller using
>>> addSelectorHandler(). So we can have multiple listeners for same
>>> controller. It is ok till we have all handlers for same protocol as
>>> they can be handled by same protocol chain. However we may need
>>> different protocol chain, if we have handlers for different protocol.
>>> As an example for TCP we will need ReadFilter, however for UDP we
>>> need UDPReadFilter.
>>
>> The latest version of ReadFilter works for both UDP and TCP.
>>
> This is great :)
>>
>> Now protocol chain should be provided based on underlying
>>> protocol. This decision need to be made in poll() method of
>>> ProtocolChainInstanceHandler. This method does not have any argument.
>>> Please provide inputs on how to achieve this.
>>
>> It would be better to use two Controller in that case, one for TCP,
>> one for UDP if they can't be handled by a sinfle filter.
>>
> Please let me know of possible usecase for poll() method. What can be
> achieved using poll() method?

I didn't have that scenario in mind when we designed the
InstanceHandler. Hence right now you have two solutions:

(1) Have two Controller
(2) Extends Controller.pollContext() to replace instanceHandler.poll()
with your own call (something like poll(SelectionKey)). From the
SelectionKey, you can find the protocol by looking at SocketChannel or
DatagramChannel.

>>
>>>
>>> Also when execute() method of filter is called, is there any way to
>>> figure out when this call originated from TCP or UDP.
>>
>> ctx.getProtocol() will return the current protocol executed.
>>
> I did not find this method earlier. Is this added recently? Is it
> available in grizzly 1.5.1?

Was added last Thursday :-). Yes it is in 1.5.1.

Thanks

-- Jeanfrancois

>> Thanks
>>
>> -- Jeanfrancois
>>
>>
>>>
>>> Thanks,
>>> Kshitiz
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe_at_grizzly.dev.java.net
>>> For additional commands, e-mail: users-help_at_grizzly.dev.java.net
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe_at_grizzly.dev.java.net
>> For additional commands, e-mail: dev-help_at_grizzly.dev.java.net
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe_at_grizzly.dev.java.net
> For additional commands, e-mail: dev-help_at_grizzly.dev.java.net
>