public class SocketChannelHelper
extends java.lang.Object
SERVER After an accept event, the server creates a ChannelHelper object giving it a proper option ISelectHandler selectHandler = new Server(); NIOLoop looper = new NIOLooper(); SocketChannel socketChannel = ServerSocketChannel.accept(); ChannelHelper channelHelper = new ChannelHelper(looper, selectHandler, socketChannel, options); After this point, you could use read()/write() to access socket
CLIENT After a successful connect, the client creates a ChannelHelper object giving it a proper option ISelectHandler selectHandler = new Client(); NIOLoop looper = new NIOLooper(); SocketChannel socketChannel = SocketChannel.open(); socketChannel.connect(endpoint); ChannelHelper channelHelper = new ChannelHelper(looper, selectHandler, socketChannel, options); After this point, you could use read()/write() to access socket.
Notice: The SocketChannelHelper would work only when the socketChannel is connected and opened. Higher level logic needs to guarantee SocketChannelHelper's methods are invoked within proper SocketChannel state.
Constructor and Description |
---|
SocketChannelHelper(NIOLooper looper,
ISelectHandler selectHandler,
java.nio.channels.SocketChannel socketChannel,
HeronSocketOptions options) |
Modifier and Type | Method and Description |
---|---|
void |
clear() |
void |
disableReading() |
void |
disableWriting() |
void |
enableReading() |
void |
enableWriting() |
void |
forceFlushWithBestEffort() |
int |
getOutstandingPackets() |
long |
getTotalBytesRead() |
long |
getTotalBytesWritten() |
long |
getTotalPacketsRead() |
long |
getTotalPacketsWritten() |
boolean |
hasPacketsToSend() |
java.util.List<IncomingPacket> |
read() |
boolean |
sendPacket(OutgoingPacket outgoingPacket) |
void |
write() |
public SocketChannelHelper(NIOLooper looper, ISelectHandler selectHandler, java.nio.channels.SocketChannel socketChannel, HeronSocketOptions options)
public void clear()
public boolean sendPacket(OutgoingPacket outgoingPacket)
public java.util.List<IncomingPacket> read()
public void write()
public void forceFlushWithBestEffort()
public void enableReading()
public void disableReading()
public void enableWriting()
public void disableWriting()
public int getOutstandingPackets()
public boolean hasPacketsToSend()
public long getTotalPacketsWritten()
public long getTotalPacketsRead()
public long getTotalBytesRead()
public long getTotalBytesWritten()