package org.playorm.nio.impl.cm.readreg; import java.net.SocketAddress; import java.nio.ByteBuffer; import java.util.logging.Level; import java.util.logging.Logger; import javax.net.ssl.SSLEngine; import org.playorm.nio.api.channels.TCPChannel; import org.playorm.nio.api.deprecated.ConnectionCallback; import org.playorm.nio.api.handlers.FutureOperation; import org.playorm.nio.api.handlers.OperationCallback; class RegTCPChannel extends RegHelperChannel implements TCPChannel { private static final Logger apiLog = Logger.getLogger(TCPChannel.class.getName()); // private static final Logger log = Logger.getLogger(TCPChannelImpl.class.getName()); // private BufferHelper helper = ChannelManagerFactory.bufferHelper(null); public RegTCPChannel(TCPChannel channel) { super(channel); } protected TCPChannel getRealTcpChannel() { return (TCPChannel)super.getRealChannel(); } public synchronized void oldConnect(SocketAddress addr, ConnectionCallback c) { if(apiLog.isLoggable(Level.FINE)) apiLog.fine(this+"RegRead.connect called-addr="+addr); //Can I register for reads after initiating connect or should I register //for reads in a ConnectionCallback proxy?? For now, I register //after initiating the connect TCPChannel realChannel = getRealTcpChannel(); realChannel.oldConnect(addr, c); if(cachedListener != null) { getRealChannel().registerForReads(cachedListener); } } @Override public int oldWrite(ByteBuffer b) { return getRealChannel().oldWrite(b); } public void oldWrite(ByteBuffer b, OperationCallback h) { getRealChannel().oldWrite(b, h); } public boolean getKeepAlive() { TCPChannel realChannel = getRealTcpChannel(); return realChannel.getKeepAlive(); } public void setKeepAlive(boolean b) { TCPChannel realChannel = getRealTcpChannel(); realChannel.setKeepAlive(b); } public FutureOperation openSSL(SSLEngine engine) { TCPChannel realChannel = getRealTcpChannel(); return realChannel.openSSL(engine); } public FutureOperation closeSSL() { TCPChannel realChannel = getRealTcpChannel(); return realChannel.closeSSL(); } @Override public boolean isInSslMode() { TCPChannel realChannel = getRealTcpChannel(); return realChannel.isInSslMode(); } }