package com.netifera.platform.internal.channel.tcpconnect; import java.net.InetSocketAddress; import com.netifera.platform.api.channels.IChannelConnecter; import com.netifera.platform.api.channels.IChannelFactory; import com.netifera.platform.api.channels.IChannelServer; import com.netifera.platform.api.dispatcher.IClientDispatcher; import com.netifera.platform.api.dispatcher.IServerDispatcher; import com.netifera.platform.api.log.ILogManager; import com.netifera.platform.api.log.ILogger; import com.netifera.platform.channel.socket.ConfigParser; import com.netifera.platform.channel.tcpconnect.ITCPConnectServer; public class TCPConnectChannelFactory implements IChannelFactory { private ILogger logger; private final ConfigParser configParser = new ConfigParser(ITCPConnectServer.CHANNEL_TYPE); public IChannelConnecter createConnecter( IClientDispatcher clientDispatcher, String channelConfig) { final int port = configParser.configToPort(channelConfig); if(port == ConfigParser.INVALID_PORT) return null; TCPConnectConnecter connecter = new TCPConnectConnecter(clientDispatcher, logger); connecter.setConnectbackPort(port); return connecter; } public IChannelServer createServer(IServerDispatcher serverDispatcher, String channelConfig) { logger.info("Creating a TCP connect back server with config " + channelConfig); final InetSocketAddress address = configParser.configToAddress("connectback:" + channelConfig); if(address == null) return null; final TCPConnectServer server = new TCPConnectServer(serverDispatcher,logger); server.setAddress(address); return server; } public String getType() { return ITCPConnectServer.CHANNEL_TYPE; } protected void setLogManager(ILogManager logManager) { logger = logManager.getLogger("TCP Connect back Channel"); } protected void unsetLogManager(ILogManager logManager) { } }