Merge "add basic lib - plugin communication"
[openflowjava.git] / openflow-protocol-impl / src / main / java / org / openflow / lib / PublishingChannelInitializer.java
1 package org.openflow.lib;\r
2 \r
3 import io.netty.channel.Channel;\r
4 import io.netty.channel.ChannelInitializer;\r
5 import io.netty.channel.group.DefaultChannelGroup;\r
6 \r
7 import java.util.Iterator;\r
8 \r
9 import org.openflow.lib.TcpHandler.COMPONENT_NAMES;\r
10 \r
11 /**\r
12  * @author michal.polkorab\r
13  *\r
14  */\r
15 public class PublishingChannelInitializer extends ChannelInitializer<Channel> {\r
16 \r
17     private DefaultChannelGroup allChannels;\r
18     \r
19     /**\r
20      * default ctor\r
21      */\r
22     public PublishingChannelInitializer() {\r
23         allChannels = new DefaultChannelGroup("netty-receiver", null);\r
24     }\r
25     \r
26     @Override\r
27     protected void initChannel(Channel ch) throws Exception {\r
28         allChannels.add(ch);\r
29         ch.pipeline().addLast(COMPONENT_NAMES.TLS_DETECTOR.name(), new TlsDetector());\r
30     }\r
31     \r
32     /**\r
33      * @return iterator through active connections\r
34      */\r
35     public Iterator<Channel> getConnectionIterator() {\r
36         return allChannels.iterator();\r
37     }\r
38 \r
39     /**\r
40      * @return amount of active channels\r
41      */\r
42     public int size() {\r
43         return allChannels.size();\r
44     }\r
45     \r
46     \r
47 \r
48 }\r