public class ChannelEndPoint extends Object implements EndPoint
Holds the channel and socket for an NIO endpoint.
| Modifier and Type | Field and Description |
|---|---|
protected ByteChannel |
_channel |
protected ByteBuffer[] |
_gather2 |
protected InetSocketAddress |
_local |
protected int |
_maxIdleTime |
protected InetSocketAddress |
_remote |
protected Socket |
_socket |
| Modifier | Constructor and Description |
|---|---|
|
ChannelEndPoint(ByteChannel channel) |
protected |
ChannelEndPoint(ByteChannel channel,
int maxIdleTime) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
blockReadable(long millisecs) |
boolean |
blockWritable(long millisecs) |
void |
close()
Close any backing stream associated with the endpoint
|
int |
fill(Buffer buffer)
Fill the buffer from the current putIndex to it's capacity from whatever
byte source is backing the buffer.
|
void |
flush()
Flush any buffered output.
|
int |
flush(Buffer buffer)
Flush the buffer from the current getIndex to it's putIndex using whatever byte
sink is backing the buffer.
|
int |
flush(Buffer header,
Buffer buffer,
Buffer trailer)
Flush the buffer from the current getIndex to it's putIndex using whatever byte
sink is backing the buffer.
|
protected int |
gatheringFlush(Buffer header,
ByteBuffer bbuf0,
Buffer buffer,
ByteBuffer bbuf1) |
ByteChannel |
getChannel() |
String |
getLocalAddr() |
String |
getLocalHost() |
int |
getLocalPort() |
int |
getMaxIdleTime()
Get the max idle time in ms.
|
String |
getRemoteAddr() |
String |
getRemoteHost() |
int |
getRemotePort() |
Object |
getTransport() |
boolean |
isBlocking() |
boolean |
isInputShutdown() |
boolean |
isOpen() |
boolean |
isOutputShutdown() |
void |
setMaxIdleTime(int timeMs)
Set the max idle time.
|
protected void |
shutdownChannelInput()
Shutdown the channel Input.
|
protected void |
shutdownChannelOutput() |
void |
shutdownInput()
Shutdown any backing input stream associated with the endpoint
|
void |
shutdownOutput()
Shutdown any backing output stream associated with the endpoint
|
protected final ByteChannel _channel
protected final ByteBuffer[] _gather2
protected final Socket _socket
protected final InetSocketAddress _local
protected final InetSocketAddress _remote
protected volatile int _maxIdleTime
public ChannelEndPoint(ByteChannel channel) throws IOException
IOExceptionprotected ChannelEndPoint(ByteChannel channel, int maxIdleTime) throws IOException
IOExceptionpublic boolean isBlocking()
isBlocking in interface EndPointpublic boolean blockReadable(long millisecs)
throws IOException
blockReadable in interface EndPointIOExceptionpublic boolean blockWritable(long millisecs)
throws IOException
blockWritable in interface EndPointIOExceptionprotected final void shutdownChannelInput()
throws IOException
shutdownInput()IOExceptionpublic void shutdownInput()
throws IOException
EndPointshutdownInput in interface EndPointIOExceptionprotected final void shutdownChannelOutput()
throws IOException
IOExceptionpublic void shutdownOutput()
throws IOException
EndPointshutdownOutput in interface EndPointIOExceptionpublic boolean isOutputShutdown()
isOutputShutdown in interface EndPointpublic boolean isInputShutdown()
isInputShutdown in interface EndPointpublic void close()
throws IOException
EndPointclose in interface EndPointIOExceptionpublic int fill(Buffer buffer) throws IOException
EndPointfill in interface EndPointint value indicating the number of bytes
filled or -1 if EOF is reached.EofException - If input is shutdown or the endpoint is closed.IOExceptionpublic int flush(Buffer buffer) throws IOException
EndPointflush in interface EndPointbuffer - The buffer to flush. This buffers getIndex is updated.EofException - If the endpoint is closed or output is shutdown.IOExceptionpublic int flush(Buffer header, Buffer buffer, Buffer trailer) throws IOException
EndPointflush in interface EndPointheader - A buffer to write before flushing this buffer. This buffers getIndex is updated.buffer - The buffer to flush. This buffers getIndex is updated.trailer - A buffer to write after flushing this buffer. This buffers getIndex is updated.IOExceptionprotected int gatheringFlush(Buffer header, ByteBuffer bbuf0, Buffer buffer, ByteBuffer bbuf1) throws IOException
IOExceptionpublic ByteChannel getChannel()
public String getLocalAddr()
getLocalAddr in interface EndPointEndPoint is bound, or null
if this EndPoint does not represent a network connection.public String getLocalHost()
getLocalHost in interface EndPointEndPoint is bound, or null
if this EndPoint does not represent a network connection.public int getLocalPort()
getLocalPort in interface EndPointEndPoint is listening, or 0
if this EndPoint does not represent a network connection.public String getRemoteAddr()
getRemoteAddr in interface EndPointEndPoint is connected, or null
if this EndPoint does not represent a network connection.public String getRemoteHost()
getRemoteHost in interface EndPointEndPoint is connected, or null
if this EndPoint does not represent a network connection.public int getRemotePort()
getRemotePort in interface EndPointEndPoint is connected, or 0
if this EndPoint does not represent a network connection.public Object getTransport()
getTransport in interface EndPointpublic void flush()
throws IOException
EndPointflush in interface EndPointEofException - If the endpoint is closed or output is shutdown.IOExceptionpublic int getMaxIdleTime()
EndPointThe max idle time is the time the endpoint can be idle before
extraordinary handling takes place. This loosely corresponds to
the Socket.getSoTimeout() for blocking connections,
but AsyncEndPoint implementations must use other mechanisms
to implement the max idle time.
getMaxIdleTime in interface EndPointpublic void setMaxIdleTime(int timeMs)
throws IOException
EndPointsetMaxIdleTime in interface EndPointtimeMs - the max idle time in MS. Timeout <= 0 implies an infinite timeoutIOException - if the timeout cannot be set.StreamEndPoint.setMaxIdleTime(int)Copyright © 1995-2015 Mort Bay Consulting. All Rights Reserved.