|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.glassfish.grizzly.nio.NIOConnection
public abstract class NIOConnection
Common Connection implementation for Java NIO Connections.
| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from interface org.glassfish.grizzly.Connection |
|---|
Connection.CloseListener |
| Field Summary | |
|---|---|
protected TaskQueue<AsyncReadQueueRecord> |
asyncReadQueue
|
protected TaskQueue<AsyncWriteQueueRecord> |
asyncWriteQueue
|
protected AttributeHolder |
attributes
|
protected SelectableChannel |
channel
|
protected boolean |
isBlocking
|
protected AtomicBoolean |
isClosed
|
protected boolean |
isStandalone
|
protected MonitoringConfigImpl<ConnectionProbe> |
monitoringConfig
Connection probes |
protected Processor |
processor
|
protected ProcessorSelector |
processorSelector
|
protected int |
readBufferSize
|
protected long |
readTimeoutMillis
|
protected SelectionKey |
selectionKey
|
protected SelectorRunner |
selectorRunner
|
protected NIOTransport |
transport
|
protected int |
writeBufferSize
|
protected long |
writeTimeoutMillis
|
protected short |
zeroByteReadCount
|
| Constructor Summary | |
|---|---|
NIOConnection(NIOTransport transport)
|
|
| Method Summary | ||
|---|---|---|
void |
addCloseListener(Connection.CloseListener closeListener)
Add the Connection.CloseListener, which will be notified once Connection
will be closed. |
|
void |
attachToSelectorRunner(SelectorRunner selectorRunner)
|
|
protected void |
checkEmptyRead(int size)
|
|
GrizzlyFuture |
close()
Close the Connection |
|
void |
configureBlocking(boolean isBlocking)
Sets the Connection mode. |
|
void |
configureStandalone(boolean isStandalone)
|
|
void |
detachSelectorRunner()
|
|
void |
disableIOEvent(IOEvent ioEvent)
|
|
void |
enableIOEvent(IOEvent ioEvent)
|
|
TaskQueue<AsyncReadQueueRecord> |
getAsyncReadQueue()
|
|
TaskQueue<AsyncWriteQueueRecord> |
getAsyncWriteQueue()
|
|
AttributeHolder |
getAttributes()
Get associated AttributeHolder. |
|
SelectableChannel |
getChannel()
|
|
MonitoringConfig<ConnectionProbe> |
getMonitoringConfig()
Return the object associated MonitoringConfig. |
|
Processor |
getProcessor()
Gets the default Processor, which will process Connection
I/O events. |
|
ProcessorSelector |
getProcessorSelector()
Gets the default ProcessorSelector, which will be used to get
Processor to process Connection I/O events, in case if
this Connection's Processor is null. |
|
int |
getReadBufferSize()
Get the default size of Buffers, which will be allocated for
reading data from Connection. |
|
long |
getReadTimeout(TimeUnit timeUnit)
|
|
SelectionKey |
getSelectionKey()
|
|
SelectorRunner |
getSelectorRunner()
|
|
Transport |
getTransport()
Get the Transport, to which this Connection belongs to. |
|
int |
getWriteBufferSize()
Get the default size of Buffers, which will be allocated for
writing data to Connection. |
|
long |
getWriteTimeout(TimeUnit timeUnit)
|
|
boolean |
isBlocking()
|
|
boolean |
isOpen()
Is Connection open and ready. |
|
boolean |
isStandalone()
|
|
void |
notifyConnectionError(Throwable error)
Method gets invoked, when error occur during the Connection lifecycle. |
|
protected static void |
notifyIOEventDisabled(NIOConnection connection,
IOEvent ioEvent)
Notify registered ConnectionProbes about the IO Event disabled event. |
|
protected static void |
notifyIOEventEnabled(NIOConnection connection,
IOEvent ioEvent)
Notify registered ConnectionProbes about the IO Event enabled event. |
|
protected static void |
notifyIOEventReady(NIOConnection connection,
IOEvent ioEvent)
Notify registered ConnectionProbes about the IO Event ready event. |
|
protected static void |
notifyProbesAccept(NIOConnection connection)
Notify registered ConnectionProbes about the accept event. |
|
protected static void |
notifyProbesBind(NIOConnection connection)
Notify registered ConnectionProbes about the bind event. |
|
protected static void |
notifyProbesClose(NIOConnection connection)
Notify registered ConnectionProbes about the close event. |
|
protected static void |
notifyProbesConnect(NIOConnection connection)
Notify registered ConnectionProbes about the connect event. |
|
protected static void |
notifyProbesError(NIOConnection connection,
Throwable error)
Notify registered ConnectionProbes about the error. |
|
protected static void |
notifyProbesRead(NIOConnection connection,
Buffer data,
int size)
Notify registered ConnectionProbes about the read event. |
|
protected static void |
notifyProbesWrite(NIOConnection connection,
Buffer data,
int size)
Notify registered ConnectionProbes about the write event. |
|
Processor |
obtainProcessor(IOEvent ioEvent)
Gets the Processor, which will process Connection
I/O event. |
|
protected abstract void |
preClose()
|
|
|
read()
Method reads data. |
|
|
read(CompletionHandler<ReadResult<M,SocketAddress>> completionHandler)
|
|
boolean |
removeCloseListener(Connection.CloseListener closeListener)
Remove the Connection.CloseListener. |
|
protected void |
setChannel(SelectableChannel channel)
|
|
void |
setProcessor(Processor preferableProcessor)
Sets the default Processor, which will process Connection
I/O events. |
|
void |
setProcessorSelector(ProcessorSelector preferableProcessorSelector)
Sets the default ProcessorSelector, which will be used to get
Processor to process Connection I/O events, in case if
this Connection's Processor is null. |
|
void |
setReadBufferSize(int readBufferSize)
Set the default size of Buffers, which will be allocated for
reading data from Connection. |
|
void |
setReadTimeout(long timeout,
TimeUnit timeUnit)
|
|
protected void |
setSelectionKey(SelectionKey selectionKey)
|
|
protected void |
setSelectorRunner(SelectorRunner selectorRunner)
|
|
void |
setWriteBufferSize(int writeBufferSize)
Set the default size of Buffers, which will be allocated for
writing data to Connection. |
|
void |
setWriteTimeout(long timeout,
TimeUnit timeUnit)
|
|
|
write(M message)
Method writes the buffer. |
|
|
write(M message,
CompletionHandler<WriteResult<M,SocketAddress>> completionHandler)
Method writes the buffer. |
|
|
write(SocketAddress dstAddress,
M message,
CompletionHandler<WriteResult<M,SocketAddress>> completionHandler)
Method writes the buffer to the specific address. |
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Methods inherited from interface org.glassfish.grizzly.Connection |
|---|
getLocalAddress, getPeerAddress |
| Field Detail |
|---|
protected final NIOTransport transport
protected volatile int readBufferSize
protected volatile int writeBufferSize
protected volatile long readTimeoutMillis
protected volatile long writeTimeoutMillis
protected volatile SelectorRunner selectorRunner
protected volatile SelectableChannel channel
protected volatile SelectionKey selectionKey
protected volatile Processor processor
protected volatile ProcessorSelector processorSelector
protected final AttributeHolder attributes
protected final TaskQueue<AsyncReadQueueRecord> asyncReadQueue
protected final TaskQueue<AsyncWriteQueueRecord> asyncWriteQueue
protected final AtomicBoolean isClosed
protected volatile boolean isBlocking
protected volatile boolean isStandalone
protected short zeroByteReadCount
protected final MonitoringConfigImpl<ConnectionProbe> monitoringConfig
| Constructor Detail |
|---|
public NIOConnection(NIOTransport transport)
| Method Detail |
|---|
public void configureBlocking(boolean isBlocking)
ConnectionConnection mode.
configureBlocking in interface Connection<SocketAddress>isBlocking - the Connection mode. true,
if Connection should operate in blocking mode, or
false otherwise.public boolean isBlocking()
isBlocking in interface Connection<SocketAddress>Connection mode.
true, if Connection is operating in blocking mode, or
false otherwise.public void configureStandalone(boolean isStandalone)
configureStandalone in interface Connection<SocketAddress>public boolean isStandalone()
isStandalone in interface Connection<SocketAddress>public Transport getTransport()
ConnectionTransport, to which this Connection belongs to.
getTransport in interface Connection<SocketAddress>Transport, to which this Connection belongs to.public int getReadBufferSize()
ConnectionBuffers, which will be allocated for
reading data from Connection.
getReadBufferSize in interface Connection<SocketAddress>Buffers, which will be allocated for
reading data from Connection.public void setReadBufferSize(int readBufferSize)
ConnectionBuffers, which will be allocated for
reading data from Connection.
setReadBufferSize in interface Connection<SocketAddress>readBufferSize - the default size of Buffers, which will
be allocated for reading data from Connection.public int getWriteBufferSize()
ConnectionBuffers, which will be allocated for
writing data to Connection.
getWriteBufferSize in interface Connection<SocketAddress>Buffers, which will be allocated for
writing data to Connection.public void setWriteBufferSize(int writeBufferSize)
ConnectionBuffers, which will be allocated for
writing data to Connection.
setWriteBufferSize in interface Connection<SocketAddress>writeBufferSize - the default size of Buffers, which will
be allocated for writing data to Connection.public long getReadTimeout(TimeUnit timeUnit)
getReadTimeout in interface Connection<SocketAddress>
public void setReadTimeout(long timeout,
TimeUnit timeUnit)
setReadTimeout in interface Connection<SocketAddress>public long getWriteTimeout(TimeUnit timeUnit)
getWriteTimeout in interface Connection<SocketAddress>
public void setWriteTimeout(long timeout,
TimeUnit timeUnit)
setWriteTimeout in interface Connection<SocketAddress>public SelectorRunner getSelectorRunner()
protected void setSelectorRunner(SelectorRunner selectorRunner)
public void attachToSelectorRunner(SelectorRunner selectorRunner)
throws IOException
IOException
public void detachSelectorRunner()
throws IOException
IOExceptionpublic SelectableChannel getChannel()
protected void setChannel(SelectableChannel channel)
public SelectionKey getSelectionKey()
protected void setSelectionKey(SelectionKey selectionKey)
public Processor obtainProcessor(IOEvent ioEvent)
ConnectionProcessor, which will process Connection
I/O event.
If Processor is null, - then Transport will try
to get Processor using Connection's
ProcessorSelector.select(IOEvent, Connection). If
ProcessorSelector, associated withthe Connection is also
null - will ask Transport for a Processor.
obtainProcessor in interface Connection<SocketAddress>Processor, which will process
Connection I/O events.public Processor getProcessor()
ConnectionProcessor, which will process Connection
I/O events.
If Processor is null, - then Transport will try
to get Processor using Connection's
ProcessorSelector.select(IOEvent, Connection). If
ProcessorSelector, associated withthe Connection is also
null - Transport will try to get Processor
using own settings.
getProcessor in interface Connection<SocketAddress>Processor, which will process
Connection I/O events.public void setProcessor(Processor preferableProcessor)
ConnectionProcessor, which will process Connection
I/O events.
If Processor is null, - then Transport will try
to get Processor using Connection's
ProcessorSelector.select(IOEvent, Connection). If
ProcessorSelector, associated withthe Connection is also
null - Transport will try to get Processor
using own settings.
setProcessor in interface Connection<SocketAddress>preferableProcessor - the default Processor, which will
process Connection I/O events.public ProcessorSelector getProcessorSelector()
ConnectionProcessorSelector, which will be used to get
Processor to process Connection I/O events, in case if
this Connection's Processor is null.
getProcessorSelector in interface Connection<SocketAddress>ProcessorSelector, which will be used to get
Processor to process Connection I/O events, in case if
this Connection's Processor is null.public void setProcessorSelector(ProcessorSelector preferableProcessorSelector)
ConnectionProcessorSelector, which will be used to get
Processor to process Connection I/O events, in case if
this Connection's Processor is null.
setProcessorSelector in interface Connection<SocketAddress>preferableProcessorSelector - the default ProcessorSelector,
which will be used to get Processor to process Connection
I/O events, in case if this Connection's Processor
is null.public TaskQueue<AsyncReadQueueRecord> getAsyncReadQueue()
public TaskQueue<AsyncWriteQueueRecord> getAsyncWriteQueue()
public AttributeHolder getAttributes()
AttributeStorageAttributeHolder.
Implementation may return null if AttributeHolder wasn't
initialized yet.
getAttributes in interface AttributeStorageAttributeHolder.
Implementation may return null if AttributeHolder wasn't
initialized yet.
public <M> GrizzlyFuture<ReadResult<M,SocketAddress>> read()
throws IOException
Readable
read in interface Readable<SocketAddress>Future, using which it's possible to check the result
IOException
public <M> GrizzlyFuture<ReadResult<M,SocketAddress>> read(CompletionHandler<ReadResult<M,SocketAddress>> completionHandler)
throws IOException
read in interface Readable<SocketAddress>IOException
public <M> GrizzlyFuture<WriteResult<M,SocketAddress>> write(M message)
throws IOException
Writable
write in interface Writable<SocketAddress>message - the buffer, from which the data will be written
Future, using which it's possible to check the
result
IOException
public <M> GrizzlyFuture<WriteResult<M,SocketAddress>> write(M message,
CompletionHandler<WriteResult<M,SocketAddress>> completionHandler)
throws IOException
Writable
write in interface Writable<SocketAddress>message - the buffer, from which the data will be writtencompletionHandler - CompletionHandler,
which will get notified, when write will be completed
Future, using which it's possible to check the
result
IOException
public <M> GrizzlyFuture<WriteResult<M,SocketAddress>> write(SocketAddress dstAddress,
M message,
CompletionHandler<WriteResult<M,SocketAddress>> completionHandler)
throws IOException
Writable
write in interface Writable<SocketAddress>dstAddress - the destination address the buffer will be
sent tomessage - the buffer, from which the data will be writtencompletionHandler - CompletionHandler,
which will get notified, when write will be completed
Future, using which it's possible to check the
result
IOExceptionpublic boolean isOpen()
ConnectionConnection open and ready.
Returns true, if connection is open and ready, or false
otherwise.
isOpen in interface Connection<SocketAddress>
public GrizzlyFuture close()
throws IOException
ConnectionConnection
close in interface Closeableclose in interface Connection<SocketAddress>Future, which could be checked in case, if close operation
will be run asynchronously
IOException - if I/O error was detected
during Connection closing.public void addCloseListener(Connection.CloseListener closeListener)
Connection.CloseListener, which will be notified once Connection
will be closed.
addCloseListener in interface Connection<SocketAddress>closeListener - Connection.CloseListener.public boolean removeCloseListener(Connection.CloseListener closeListener)
Connection.CloseListener.
removeCloseListener in interface Connection<SocketAddress>closeListener - Connection.CloseListener.public void notifyConnectionError(Throwable error)
notifyConnectionError in interface Connection<SocketAddress>error - Throwable.public final MonitoringConfig<ConnectionProbe> getMonitoringConfig()
MonitoringConfig.
getMonitoringConfig in interface Connection<SocketAddress>getMonitoringConfig in interface MonitoringAware<ConnectionProbe>MonitoringConfig.protected static void notifyProbesBind(NIOConnection connection)
ConnectionProbes about the bind event.
connection - the Connection event occurred on.protected static void notifyProbesAccept(NIOConnection connection)
ConnectionProbes about the accept event.
connection - the Connection event occurred on.protected static void notifyProbesConnect(NIOConnection connection)
ConnectionProbes about the connect event.
connection - the Connection event occurred on.
protected static void notifyProbesRead(NIOConnection connection,
Buffer data,
int size)
ConnectionProbes about the read event.
protected static void notifyProbesWrite(NIOConnection connection,
Buffer data,
int size)
ConnectionProbes about the write event.
protected static void notifyIOEventReady(NIOConnection connection,
IOEvent ioEvent)
ConnectionProbes about the IO Event ready event.
connection - the Connection event occurred on.ioEvent - the IOEvent.
protected static void notifyIOEventEnabled(NIOConnection connection,
IOEvent ioEvent)
ConnectionProbes about the IO Event enabled event.
connection - the Connection event occurred on.ioEvent - the IOEvent.
protected static void notifyIOEventDisabled(NIOConnection connection,
IOEvent ioEvent)
ConnectionProbes about the IO Event disabled event.
connection - the Connection event occurred on.ioEvent - the IOEvent.protected static void notifyProbesClose(NIOConnection connection)
ConnectionProbes about the close event.
connection - the Connection event occurred on.
protected static void notifyProbesError(NIOConnection connection,
Throwable error)
ConnectionProbes about the error.
connection - the Connection event occurred on.protected abstract void preClose()
public final void enableIOEvent(IOEvent ioEvent)
throws IOException
enableIOEvent in interface Connection<SocketAddress>IOException
public final void disableIOEvent(IOEvent ioEvent)
throws IOException
disableIOEvent in interface Connection<SocketAddress>IOExceptionprotected final void checkEmptyRead(int size)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||