- Type Parameters:
L
- the destination address type
- All Superinterfaces:
AsyncQueue
,Writer<L>
- All Known Implementing Classes:
AbstractNIOAsyncQueueWriter
,TCPNIOAsyncQueueWriter
,UDPNIOAsyncQueueWriter
The
AsyncQueue
, which implements asynchronous write queue.- Author:
- Alexey Stashok, Ryan Lubke
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.glassfish.grizzly.asyncqueue.AsyncQueue
AsyncQueue.AsyncResult
Nested classes/interfaces inherited from interface org.glassfish.grizzly.Writer
Writer.Reentrant
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
Constant set viasetMaxPendingBytesPerConnection(int)
means the async write queue size will be configured automatically perNIOConnection
depending on connections write buffer size.static final int
Constant set viasetMaxPendingBytesPerConnection(int)
means the async write queue size is unlimited.Fields inherited from interface org.glassfish.grizzly.asyncqueue.AsyncQueue
EXPECTING_MORE_OPTION
-
Method Summary
Modifier and TypeMethodDescriptionboolean
canWrite
(Connection<L> connection, int size) Deprecated.int
boolean
Returns true, if async write queue is allowed to write buffer directly during write(...) method call, w/o adding buffer to the queue, or false otherwise.void
notifyWritePossible
(Connection<L> connection, WriteHandler writeHandler, int size) Deprecated.the size parameter will be ignored, useinstead.
void
setAllowDirectWrite
(boolean isAllowDirectWrite) Set true, if async write queue is allowed to write buffer directly during write(...) method call, w/o adding buffer to the queue, or false otherwise.void
setMaxPendingBytesPerConnection
(int maxQueuedWrites) Configures the maximum number of bytes pending to be written for a particularConnection
.void
write
(Connection<L> connection, L dstAddress, WritableMessage message, CompletionHandler<WriteResult<WritableMessage, L>> completionHandler, PushBackHandler pushBackHandler, MessageCloner<WritableMessage> cloner) Deprecated.push back logic is deprecatedMethods inherited from interface org.glassfish.grizzly.asyncqueue.AsyncQueue
close, isReady, onClose, processAsync
-
Field Details
-
UNLIMITED_SIZE
static final int UNLIMITED_SIZEConstant set viasetMaxPendingBytesPerConnection(int)
means the async write queue size is unlimited.- See Also:
-
AUTO_SIZE
static final int AUTO_SIZEConstant set viasetMaxPendingBytesPerConnection(int)
means the async write queue size will be configured automatically perNIOConnection
depending on connections write buffer size.- See Also:
-
-
Method Details
-
write
@Deprecated void write(Connection<L> connection, L dstAddress, WritableMessage message, CompletionHandler<WriteResult<WritableMessage, L>> completionHandler, PushBackHandler pushBackHandler, MessageCloner<WritableMessage> cloner) Deprecated.push back logic is deprecatedMethod writes theBuffer
to the specific address.- Parameters:
connection
- theConnection
to write todstAddress
- the destination address theWritableMessage
will be sent tomessage
- theWritableMessage
, from which the data will be writtencompletionHandler
-CompletionHandler
, which will get notified, when write will be completedpushBackHandler
-PushBackHandler
, which will be notified if message was accepted by transport write queue or refusedcloner
-MessageCloner
, which will be invoked by AsyncQueueWriter, if message could not be written to a channel directly and has to be put on a asynchronous queue
-
canWrite
Deprecated.the size parameter will be ignored, useWriter.canWrite(org.glassfish.grizzly.Connection)
instead.- Parameters:
connection
- theConnection
to test whether or not the specified number of bytes can be written to.size
- number of bytes to write.- Returns:
true
if the queue has not exceeded it's maximum size in bytes of pending writes, otherwisefalse
- Since:
- 2.2
-
notifyWritePossible
Deprecated.the size parameter will be ignored, useinstead.
RegistersWriteHandler
, which will be notified ones theConnection
is able to accept more bytes to be written. Note: using this method from different threads simultaneously may lead to quick situation changes, so at timeWriteHandler
is called - the queue may become busy again.- Parameters:
connection
-Connection
writeHandler
-WriteHandler
to be notified.size
- number of bytes queue has to be able to accept before notifyingWriteHandler
.- Since:
- 2.2
-
setMaxPendingBytesPerConnection
void setMaxPendingBytesPerConnection(int maxQueuedWrites) Configures the maximum number of bytes pending to be written for a particularConnection
.- Parameters:
maxQueuedWrites
- maximum number of bytes that may be pending to be written to a particularConnection
.
-
getMaxPendingBytesPerConnection
int getMaxPendingBytesPerConnection()- Returns:
- the maximum number of bytes that may be pending to be written to a particular
Connection
. By default, this will be four times the size of theSocket
send buffer size.
-
isAllowDirectWrite
boolean isAllowDirectWrite()Returns true, if async write queue is allowed to write buffer directly during write(...) method call, w/o adding buffer to the queue, or false otherwise.- Returns:
- true, if async write queue is allowed to write buffer directly during write(...) method call, w/o adding buffer to the queue, or false otherwise.
-
setAllowDirectWrite
void setAllowDirectWrite(boolean isAllowDirectWrite) Set true, if async write queue is allowed to write buffer directly during write(...) method call, w/o adding buffer to the queue, or false otherwise.- Parameters:
isAllowDirectWrite
- true, if async write queue is allowed to write buffer directly during write(...) method call, w/o adding buffer to the queue, or false otherwise.
-
Writer.canWrite(org.glassfish.grizzly.Connection)
instead.