public class FilterChainContext extends Object implements AttributeStorage
FilterChain Context implementation.Context,
FilterChain| Modifier and Type | Class and Description |
|---|---|
static interface |
FilterChainContext.CompletionListener
The interface, which represents a listener, which will be notified, once
FilterChainContext processing is
complete. |
static interface |
FilterChainContext.CopyListener
The interface, which represents a listener, which will be notified, after
copy() is
called. |
static class |
FilterChainContext.Operation |
static class |
FilterChainContext.State |
static class |
FilterChainContext.TransportContext |
| Modifier and Type | Field and Description |
|---|---|
protected FilterChainEvent |
event
Context associated event, if EVENT operation
|
static int |
NO_FILTER_INDEX |
protected CompletionHandler<FilterChainContext> |
operationCompletionHandler
CompletionHandler, which will be notified, when operation will be complete. |
| Constructor and Description |
|---|
FilterChainContext() |
| Modifier and Type | Method and Description |
|---|---|
void |
addCompletionListener(FilterChainContext.CompletionListener listener)
Add the
FilterChainContext.CompletionListener, which will be notified, when this FilterChainContext processing will be
completed. |
void |
addCopyListener(FilterChainContext.CopyListener listener)
Add the
FilterChainContext.CopyListener, which will be notified, right after this copy() is called. |
void |
completeAndRecycle() |
void |
completeAndRelease() |
FilterChainContext |
copy() |
static FilterChainContext |
create(Connection connection) |
static FilterChainContext |
create(Connection connection,
Closeable closeable) |
void |
fail(Throwable error) |
void |
flush(CompletionHandler completionHandler) |
void |
fork()
This method invocation suggests the
FilterChain to create a copy of this FilterChainContext and
resume/fork its execution starting from the current Filter. |
void |
fork(NextAction nextAction)
This method invocation suggests the
FilterChain to create a copy of this FilterChainContext and
resume/fork its execution starting from the current Filter. |
Object |
getAddress()
Get address, associated with the current
IOEvent processing. |
Holder<?> |
getAddressHolder()
|
AttributeHolder |
getAttributes()
Get associated
AttributeHolder. |
Closeable |
getCloseable()
Get the
Closeable, associated with the current processing. |
Connection |
getConnection()
Get the
Connection, associated with the current processing. |
int |
getEndIdx() |
FilterChain |
getFilterChain()
Get
FilterChain, which runs the Filter. |
int |
getFilterIdx() |
NextAction |
getForkAction() |
NextAction |
getForkAction(NextAction nextAction) |
Context |
getInternalContext()
Get the general Grizzly
Context this filter context wraps. |
NextAction |
getInvokeAction()
|
<E> NextAction |
getInvokeAction(E incompleteChunk,
Appender<E> appender)
|
NextAction |
getInvokeAction(Object unparsedChunk)
|
MemoryManager |
getMemoryManager()
A simple alias for
FilterChainContext.getConnection().getMemoryManager(). |
<T> T |
getMessage()
Get message object, associated with the current processing.
|
NextAction |
getRerunFilterAction()
Get
NextAction, which instructs FilterChain to rerun the filter. |
protected Runnable |
getRunnable() |
int |
getStartIdx() |
NextAction |
getStopAction()
Get
NextAction implementation, which instructs FilterChain to stop executing phase. |
<E> NextAction |
getStopAction(E incompleteChunk,
Appender<E> appender)
Get
NextAction implementation, which instructs FilterChain stop executing phase. |
NextAction |
getStopAction(Object incompleteChunk)
Get
NextAction implementation, which instructs FilterChain stop executing phase. |
NextAction |
getSuspendAction()
Get
NextAction, which instructs FilterChain to suspend filter chain execution. |
NextAction |
getSuspendingStopAction()
Deprecated.
use
getForkAction() |
FilterChainContext.TransportContext |
getTransportContext()
Get the
TransportFilter related context. |
int |
nextFilterIdx() |
void |
notifyDownstream(FilterChainEvent event) |
void |
notifyDownstream(FilterChainEvent event,
CompletionHandler<FilterChainContext> completionHandler) |
void |
notifyUpstream(FilterChainEvent event) |
void |
notifyUpstream(FilterChainEvent event,
CompletionHandler<FilterChainContext> completionHandler) |
int |
previousFilterIdx() |
ReadResult |
read()
Performs a blocking read.
|
boolean |
removeCompletionListener(FilterChainContext.CompletionListener listener)
Remove the
FilterChainContext.CompletionListener. |
boolean |
removeCopyListener(FilterChainContext.CopyListener listener)
Remove the
FilterChainContext.CopyListener. |
void |
reset()
Release the context associated resources.
|
void |
resume()
Resume processing of the current task
|
void |
resume(NextAction nextAction)
Resume the current FilterChain task processing by completing the current
Filter (the Filter, which suspended
the processing) with the passed NextAction. |
void |
resumeNext()
Resume processing of the current task starting from the Filter, which follows the Filter, which suspend the
processing.
|
void |
setAddress(Object address)
Set address, associated with the current
IOEvent processing. |
void |
setAddressHolder(Holder<?> addressHolder)
Set address, associated with the current
IOEvent processing. |
void |
setEndIdx(int endIdx) |
void |
setFilterIdx(int index) |
void |
setMessage(Object message)
Set message object, associated with the current processing.
|
void |
setStartIdx(int startIdx) |
FilterChainContext.State |
state()
Get the current processing task state.
|
Runnable |
suspend()
Suspend processing of the current task
|
String |
toString() |
void |
write(Object message) |
void |
write(Object message,
boolean blocking) |
void |
write(Object message,
CompletionHandler<WriteResult> completionHandler) |
void |
write(Object message,
CompletionHandler<WriteResult> completionHandler,
boolean blocking) |
void |
write(Object address,
Object message,
CompletionHandler<WriteResult> completionHandler) |
void |
write(Object address,
Object message,
CompletionHandler<WriteResult> completionHandler,
boolean blocking) |
void |
write(Object address,
Object message,
CompletionHandler<WriteResult> completionHandler,
MessageCloner cloner) |
void |
write(Object address,
Object message,
CompletionHandler<WriteResult> completionHandler,
MessageCloner cloner,
boolean blocking) |
void |
write(Object address,
Object message,
CompletionHandler<WriteResult> completionHandler,
PushBackHandler pushBackHandler)
Deprecated.
|
void |
write(Object address,
Object message,
CompletionHandler<WriteResult> completionHandler,
PushBackHandler pushBackHandler,
boolean blocking)
Deprecated.
|
void |
write(Object address,
Object message,
CompletionHandler<WriteResult> completionHandler,
PushBackHandler pushBackHandler,
MessageCloner cloner)
Deprecated.
|
void |
write(Object address,
Object message,
CompletionHandler<WriteResult> completionHandler,
PushBackHandler pushBackHandler,
MessageCloner cloner,
boolean blocking)
Deprecated.
|
public static final int NO_FILTER_INDEX
protected CompletionHandler<FilterChainContext> operationCompletionHandler
CompletionHandler, which will be notified, when operation will be complete. For WRITE it means the data will
be written on wire, for other operations - the last Filter has finished the processing.protected FilterChainEvent event
public static FilterChainContext create(Connection connection)
public static FilterChainContext create(Connection connection, Closeable closeable)
public Runnable suspend()
public void resume()
public void resumeNext()
public void resume(NextAction nextAction)
Filter (the Filter, which suspended
the processing) with the passed NextAction.nextAction - the NextAction, based on which FilterChain will continue processing.public void fork()
FilterChain to create a copy of this FilterChainContext and
resume/fork its execution starting from the current Filter.public void fork(NextAction nextAction)
FilterChain to create a copy of this FilterChainContext and
resume/fork its execution starting from the current Filter.
If nextAction parameter is not null - then its value is treated as a result of the current
Filter execution on the forked FilterChain processing. So during the forked FilterChain
processing the current Filter will not be invoked, but the processing will be continued as if the current
Filter returned nextAction as a result. For example if we call
fork(ctx.getInvokeAction()); the forked FilterChain processing will start with the next
Filter in chain.public FilterChainContext.State state()
public int nextFilterIdx()
public int previousFilterIdx()
public int getFilterIdx()
public void setFilterIdx(int index)
public int getStartIdx()
public void setStartIdx(int startIdx)
public int getEndIdx()
public void setEndIdx(int endIdx)
public FilterChain getFilterChain()
FilterChain, which runs the Filter.FilterChain, which runs the Filter.public Connection getConnection()
Connection, associated with the current processing.Connection object, associated with the current processing.public Closeable getCloseable()
Closeable, associated with the current processing. The Closeable object might be used to
close/terminate an entity associated with the FilterChain processing in response to an error occurred during
the processing. If not customized the Closeable object represents a Connection associated with the
FilterChain processing.Closeable object, associated with the current processing.public <T> T getMessage()
FilterChain represents sequence of parser and process Filters. Each parser can change the
message representation until it will come to processor Filter.public void setMessage(Object message)
FilterChain represents sequence of parser and process Filters. Each parser can change the
message representation until it will come to processor Filter.message - message object, associated with the current processing.public Holder<?> getAddressHolder()
Holder, which contains address, associated with the current IOEvent
processing.
When we process IOEvent.READ event - it represents sender address, or when process
IOEvent.WRITE - address of receiver.public void setAddressHolder(Holder<?> addressHolder)
IOEvent processing. When we process
IOEvent.READ event - it represents sender address, or when process
IOEvent.WRITE - address of receiver.public Object getAddress()
IOEvent processing. When we process
IOEvent.READ event - it represents sender address, or when process
IOEvent.WRITE - address of receiver.IOEvent processing.public void setAddress(Object address)
IOEvent processing. When we process
IOEvent.READ event - it represents sender address, or when process
IOEvent.WRITE - address of receiver.address - address, associated with the current IOEvent processing.protected final Runnable getRunnable()
public FilterChainContext.TransportContext getTransportContext()
TransportFilter related context.TransportFilter.public final Context getInternalContext()
Context this filter context wraps.Context this filter context wraps.public NextAction getInvokeAction()
NextAction implementation, which instructs FilterChain to process next Filter in chain.
Normally, after receiving this instruction from Filter, FilterChain executes next filter.NextAction implementation, which instructs FilterChain to process next Filter in
chain.public NextAction getInvokeAction(Object unparsedChunk)
NextAction implementation, which instructs FilterChain to process next Filter in chain.
Normally, after receiving this instruction from Filter, FilterChain executes next filter.unparsedChunk - signals, that there is some unparsed data remaining in the source message, so
FilterChain could be rerun.NextAction implementation, which instructs FilterChain to process next Filter in
chain.public <E> NextAction getInvokeAction(E incompleteChunk, Appender<E> appender)
NextAction implementation, which instructs FilterChain to process next Filter in chain.
Normally, after receiving this instruction from Filter, FilterChain executes next filter.incompleteChunk - signals, that there is a data chunk remaining, which doesn't represent complete message. As
more data becomes available but before FilterChain calls the current Filter, it will check if the
Filter has any data stored after the last invocation. If a remainder is present it will append the new data
to the stored one and pass the result as the FilterChainContext message.appender - the Appender, which knows how to append chunks of type
<E>.NextAction implementation, which instructs FilterChain to process next Filter in
chain.IllegalArgumentException - if appender is null and remainder's type is not Buffer or
Appendable.public NextAction getStopAction()
NextAction implementation, which instructs FilterChain to stop executing phase.NextAction implementation, which instructs FilterChain to stop executing phase.public NextAction getStopAction(Object incompleteChunk)
NextAction implementation, which instructs FilterChain stop executing phase.incompleteChunk - signals, that there is a data chunk remaining, which doesn't represent complete message. As
more data becomes available but before FilterChain calls the current Filter, it will check if the
Filter has any data stored after the last invocation. If a remainder is present it will append the new data
to the stored one and pass the result as the FilterChainContext message.NextAction implementation, which instructs FilterChain to stop executing phase.IllegalArgumentException - if remainder's type is not Buffer or Appendable.public <E> NextAction getStopAction(E incompleteChunk, Appender<E> appender)
NextAction implementation, which instructs FilterChain stop executing phase.incompleteChunk - signals, that there is a data chunk remaining, which doesn't represent complete message. As
more data becomes available but before FilterChain calls the current Filter, it will check if the
Filter has any data stored after the last invocation. If a remainder is present it will append the new data
to the stored one and pass the result as the FilterChainContext message.appender - the Appender, which knows how to append chunks of type
<E>.NextAction implementation, which instructs FilterChain to stop executing phase.IllegalArgumentException - if appender is null and remainder's type is not Buffer or
Appendable.public NextAction getForkAction()
NextAction implementation, which suggests the FilterChain to forget about the current
FilterChainContext, create a copy of it and continue/fork FilterChain processing using the copied
FilterChainContext starting from the current Filter.public NextAction getForkAction(NextAction nextAction)
NextAction implementation, which suggests the FilterChain to forget about the current
FilterChainContext, create a copy of it and continue/fork FilterChain processing using the copied
FilterChainContext starting from the current Filter.
If nextAction parameter is not null - then its value is treated as a result of the current
Filter execution on the forked FilterChain processing. So during the forked FilterChain
processing the current Filter will not be invoked, but the processing will be continued as if the current
Filter returned nextAction as a result. For example if we call
fork(ctx.getInvokeAction()); the forked FilterChain processing will start with the next
Filter in chain.@Deprecated public NextAction getSuspendingStopAction()
getForkAction()NextAction implementation, which instructs the FilterChain to suspend the current
FilterChainContext and invoke similar logic as instructed by StopAction with a clean
FilterChainContext.public NextAction getSuspendAction()
NextAction, which instructs FilterChain to suspend filter chain execution.NextAction, which instructs FilterChain to suspend filter chain execution.public NextAction getRerunFilterAction()
NextAction, which instructs FilterChain to rerun the filter.NextAction, which instructs FilterChain to rerun the filter.public ReadResult read() throws IOException
Performs a blocking read.
IOException - if an I/O error occurs.public void write(Object message)
public void write(Object message, boolean blocking)
public void write(Object message, CompletionHandler<WriteResult> completionHandler)
public void write(Object message, CompletionHandler<WriteResult> completionHandler, boolean blocking)
public void write(Object address, Object message, CompletionHandler<WriteResult> completionHandler)
public void write(Object address, Object message, CompletionHandler<WriteResult> completionHandler, boolean blocking)
@Deprecated public void write(Object address, Object message, CompletionHandler<WriteResult> completionHandler, PushBackHandler pushBackHandler)
@Deprecated public void write(Object address, Object message, CompletionHandler<WriteResult> completionHandler, PushBackHandler pushBackHandler, boolean blocking)
public void write(Object address, Object message, CompletionHandler<WriteResult> completionHandler, MessageCloner cloner)
@Deprecated public void write(Object address, Object message, CompletionHandler<WriteResult> completionHandler, PushBackHandler pushBackHandler, MessageCloner cloner)
public void write(Object address, Object message, CompletionHandler<WriteResult> completionHandler, MessageCloner cloner, boolean blocking)
@Deprecated public void write(Object address, Object message, CompletionHandler<WriteResult> completionHandler, PushBackHandler pushBackHandler, MessageCloner cloner, boolean blocking)
public void flush(CompletionHandler completionHandler)
public void notifyUpstream(FilterChainEvent event)
public void notifyUpstream(FilterChainEvent event, CompletionHandler<FilterChainContext> completionHandler)
public void notifyDownstream(FilterChainEvent event)
public void notifyDownstream(FilterChainEvent event, CompletionHandler<FilterChainContext> completionHandler)
public void fail(Throwable error)
public AttributeHolder getAttributes()
AttributeHolder. 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 final void addCompletionListener(FilterChainContext.CompletionListener listener)
FilterChainContext.CompletionListener, which will be notified, when this FilterChainContext processing will be
completed.listener - the FilterChainContext.CompletionListener, which will be notified, when this FilterChainContext
processing will be completed.public final boolean removeCompletionListener(FilterChainContext.CompletionListener listener)
FilterChainContext.CompletionListener.listener - the FilterChainContext.CompletionListener to be removed.public final void addCopyListener(FilterChainContext.CopyListener listener)
FilterChainContext.CopyListener, which will be notified, right after this copy() is called.listener - the FilterChainContext.CopyListener, which will be notified, right after this copy()
is called.public final boolean removeCopyListener(FilterChainContext.CopyListener listener)
FilterChainContext.CopyListener.listener - the FilterChainContext.CopyListener to be removed.public final MemoryManager getMemoryManager()
A simple alias for FilterChainContext.getConnection().getMemoryManager().
MemoryManager associated with the Connection of this FilterChainContext.public FilterChainContext copy()
public void reset()
public void completeAndRecycle()
public void completeAndRelease()
Copyright © 2017–2020 Oracle Corporation. All rights reserved.