1 package org.opendaylight.openflowjava.protocol.impl.core;
\r
3 import io.netty.channel.Channel;
\r
4 import io.netty.channel.ChannelInitializer;
\r
5 import io.netty.channel.group.DefaultChannelGroup;
\r
6 import io.netty.channel.socket.SocketChannel;
\r
8 import java.util.Iterator;
\r
10 import org.opendaylight.openflowjava.protocol.api.connection.SwitchConnectionHandler;
\r
11 import org.opendaylight.openflowjava.protocol.impl.connection.ConnectionAdapterFactory;
\r
12 import org.opendaylight.openflowjava.protocol.impl.core.TcpHandler.COMPONENT_NAMES;
\r
15 * @author michal.polkorab
\r
18 public class PublishingChannelInitializer extends ChannelInitializer<SocketChannel> {
\r
20 private DefaultChannelGroup allChannels;
\r
21 private SwitchConnectionHandler switchConnectionHandler;
\r
26 public PublishingChannelInitializer() {
\r
27 allChannels = new DefaultChannelGroup("netty-receiver", null);
\r
31 protected void initChannel(SocketChannel ch) throws Exception {
\r
32 allChannels.add(ch);
\r
33 //TODO - create inBoundHandler
\r
34 if (switchConnectionHandler != null) {
\r
35 switchConnectionHandler.onSwitchConnected(ConnectionAdapterFactory.createConnectionAdapter(ch));
\r
36 //TODO - check OpenflowProtocolListener, set it to inBoundHandler
\r
38 ch.pipeline().addLast(COMPONENT_NAMES.TLS_DETECTOR.name(), new TlsDetector());
\r
39 //TODO - chain inBoundHandler to pipe
\r
43 * @return iterator through active connections
\r
45 public Iterator<Channel> getConnectionIterator() {
\r
46 return allChannels.iterator();
\r
50 * @return amount of active channels
\r
53 return allChannels.size();
\r
57 * @param switchListener the switchListener to set
\r
59 public void setSwitchConnectionHandler(SwitchConnectionHandler switchListener) {
\r
60 this.switchConnectionHandler = switchListener;
\r