package org.opendaylight.openflowjava.protocol.impl.core;
+import io.netty.channel.nio.NioEventLoopGroup;
+
import org.opendaylight.openflowjava.protocol.api.connection.ConnectionConfiguration;
import org.opendaylight.openflowjava.protocol.api.connection.SwitchConnectionHandler;
import org.opendaylight.openflowjava.protocol.api.extensibility.DeserializerRegistry;
* @author mirehak
* @author michal.polkorab
*/
-public class SwitchConnectionProviderImpl implements SwitchConnectionProvider {
+public class SwitchConnectionProviderImpl implements SwitchConnectionProvider, ConnectionInitializer {
private static final Logger LOGGER = LoggerFactory
.getLogger(SwitchConnectionProviderImpl.class);
private SerializerRegistry serializerRegistry;
private DeserializerRegistry deserializerRegistry;
private DeserializationFactory deserializationFactory;
+ private TcpConnectionInitializer connectionInitializer;
/** Constructor */
public SwitchConnectionProviderImpl() {
TransportProtocol transportProtocol = (TransportProtocol) connConfig.getTransferProtocol();
if (transportProtocol.equals(TransportProtocol.TCP) || transportProtocol.equals(TransportProtocol.TLS)) {
server = new TcpHandler(connConfig.getAddress(), connConfig.getPort());
- ((TcpHandler) server).setChannelInitializer(factory.createPublishingChannelInitializer());
+ TcpChannelInitializer channelInitializer = factory.createPublishingChannelInitializer();
+ ((TcpHandler) server).setChannelInitializer(channelInitializer);
+ ((TcpHandler) server).initiateEventLoopGroups(connConfig.getThreadConfiguration());
+
+ NioEventLoopGroup workerGroupFromTcpHandler = ((TcpHandler) server).getWorkerGroup();
+ connectionInitializer = new TcpConnectionInitializer(workerGroupFromTcpHandler);
+ connectionInitializer.setChannelInitializer(channelInitializer);
+ connectionInitializer.run();
} else if (transportProtocol.equals(TransportProtocol.UDP)){
server = new UdpHandler(connConfig.getAddress(), connConfig.getPort());
((UdpHandler) server).setChannelInitializer(factory.createUdpChannelInitializer());
OFSerializer<MeterBandExperimenterCase> serializer) {
serializerRegistry.registerSerializer(key, serializer);
}
-}
\ No newline at end of file
+
+ @Override
+ public void initiateConnection(String host, int port) {
+ connectionInitializer.initiateConnection(host, port);
+ }
+
+}