public class DefaultIoFilterChain extends Object implements IoFilterChain
IoFilterChain that provides
all operations for developers who want to implement their own
transport layer once used with AbstractIoSession.IoFilterChain.Entry| Modifier and Type | Field and Description |
|---|---|
static AttributeKey |
SESSION_CREATED_FUTURE
|
| Constructor and Description |
|---|
DefaultIoFilterChain(AbstractIoSession session)
Create a new default chain, associated with a session.
|
| Modifier and Type | Method and Description |
|---|---|
void |
addAfter(String baseName,
String name,
IoFilter filter)
Adds the specified filter with the specified name just after the filter whose name is
baseName in this chain. |
void |
addBefore(String baseName,
String name,
IoFilter filter)
Adds the specified filter with the specified name just before the filter whose name is
baseName in this chain. |
void |
addFirst(String name,
IoFilter filter)
Adds the specified filter with the specified name at the beginning of this chain.
|
void |
addLast(String name,
IoFilter filter)
Adds the specified filter with the specified name at the end of this chain.
|
void |
clear()
Removes all filters added to this chain.
|
boolean |
contains(Class<? extends IoFilter> filterType) |
boolean |
contains(IoFilter filter) |
boolean |
contains(String name) |
void |
fireExceptionCaught(Throwable cause)
Fires a
IoHandler.exceptionCaught(IoSession, Throwable) event. |
void |
fireFilterClose()
Fires a
IoSession.close() event. |
void |
fireFilterWrite(WriteRequest writeRequest)
Fires a
IoSession.write(Object) event. |
void |
fireMessageReceived(Object message)
Fires a
IoHandler#messageReceived(Object) event. |
void |
fireMessageSent(WriteRequest request)
Fires a
IoHandler#messageSent(IoSession) event. |
void |
fireSessionClosed()
Fires a
IoHandler.sessionClosed(IoSession) event. |
void |
fireSessionCreated()
Fires a
IoHandler.sessionCreated(IoSession) event. |
void |
fireSessionIdle(IdleStatus status)
Fires a
IoHandler.sessionIdle(IoSession, IdleStatus) event. |
void |
fireSessionOpened()
Fires a
IoHandler.sessionOpened(IoSession) event. |
IoFilter |
get(Class<? extends IoFilter> filterType)
Returns the
IoFilter with the specified filterType
in this chain. |
IoFilter |
get(String name)
Returns the
IoFilter with the specified name in this chain. |
List<IoFilterChain.Entry> |
getAll() |
List<IoFilterChain.Entry> |
getAllReversed() |
IoFilterChain.Entry |
getEntry(Class<? extends IoFilter> filterType)
Returns the
IoFilterChain.Entry with the specified filterType
in this chain. |
IoFilterChain.Entry |
getEntry(IoFilter filter)
Returns the
IoFilterChain.Entry with the specified filter in this chain. |
IoFilterChain.Entry |
getEntry(String name)
Returns the
IoFilterChain.Entry with the specified name in this chain. |
IoFilter.NextFilter |
getNextFilter(Class<? extends IoFilter> filterType)
Returns the
IoFilter.NextFilter of the specified filterType
in this chain. |
IoFilter.NextFilter |
getNextFilter(IoFilter filter)
Returns the
IoFilter.NextFilter of the specified IoFilter
in this chain. |
IoFilter.NextFilter |
getNextFilter(String name)
Returns the
IoFilter.NextFilter of the IoFilter with the
specified name in this chain. |
IoSession |
getSession()
Returns the parent
IoSession of this chain. |
IoFilter |
remove(Class<? extends IoFilter> filterType)
Replace the filter of the specified type with the specified new
filter.
|
void |
remove(IoFilter filter)
Replace the filter with the specified name with the specified new
filter.
|
IoFilter |
remove(String name)
Removes the filter with the specified name from this chain.
|
IoFilter |
replace(Class<? extends IoFilter> oldFilterType,
IoFilter newFilter)
Replace the filter of the specified type with the specified new
filter.
|
void |
replace(IoFilter oldFilter,
IoFilter newFilter)
Replace the filter with the specified name with the specified new
filter.
|
IoFilter |
replace(String name,
IoFilter newFilter)
Replace the filter with the specified name with the specified new
filter.
|
String |
toString() |
public static final AttributeKey SESSION_CREATED_FUTURE
IoFuture related with
the IoSession. DefaultIoFilterChain clears this
attribute and notifies the future when fireSessionCreated()
or fireExceptionCaught(Throwable) is invoked.public DefaultIoFilterChain(AbstractIoSession session)
session - The session associated with the created filter chainpublic IoSession getSession()
IoFilterChainIoSession of this chain.getSession in interface IoFilterChainIoSessionpublic IoFilterChain.Entry getEntry(String name)
IoFilterChainIoFilterChain.Entry with the specified name in this chain.getEntry in interface IoFilterChainname - The filter's name we are looking forpublic IoFilterChain.Entry getEntry(IoFilter filter)
IoFilterChainIoFilterChain.Entry with the specified filter in this chain.getEntry in interface IoFilterChainfilter - The Filter we are looking forpublic IoFilterChain.Entry getEntry(Class<? extends IoFilter> filterType)
IoFilterChainIoFilterChain.Entry with the specified filterType
in this chain. If there's more than one filter with the specified
type, the first match will be chosen.getEntry in interface IoFilterChainfilterType - The filter class we are looking forpublic IoFilter get(String name)
IoFilterChainIoFilter with the specified name in this chain.get in interface IoFilterChainname - the filter's namepublic IoFilter get(Class<? extends IoFilter> filterType)
IoFilterChainIoFilter with the specified filterType
in this chain. If there's more than one filter with the specified
type, the first match will be chosen.get in interface IoFilterChainfilterType - The filter classpublic IoFilter.NextFilter getNextFilter(String name)
IoFilterChainIoFilter.NextFilter of the IoFilter with the
specified name in this chain.getNextFilter in interface IoFilterChainname - The filter's name we want the next filterpublic IoFilter.NextFilter getNextFilter(IoFilter filter)
IoFilterChainIoFilter.NextFilter of the specified IoFilter
in this chain.getNextFilter in interface IoFilterChainfilter - The filter for which we want the next filterpublic IoFilter.NextFilter getNextFilter(Class<? extends IoFilter> filterType)
IoFilterChainIoFilter.NextFilter of the specified filterType
in this chain. If there's more than one filter with the specified
type, the first match will be chosen.getNextFilter in interface IoFilterChainfilterType - The Filter class for which we want the next filterpublic void addFirst(String name, IoFilter filter)
IoFilterChainaddFirst in interface IoFilterChainname - The filter's namefilter - The filter to addpublic void addLast(String name, IoFilter filter)
IoFilterChainaddLast in interface IoFilterChainname - The filter's namefilter - The filter to addpublic void addBefore(String baseName, String name, IoFilter filter)
IoFilterChainbaseName in this chain.addBefore in interface IoFilterChainbaseName - The targeted Filter's namename - The filter's namefilter - The filter to addpublic void addAfter(String baseName, String name, IoFilter filter)
IoFilterChainbaseName in this chain.addAfter in interface IoFilterChainbaseName - The targeted Filter's namename - The filter's namefilter - The filter to addpublic IoFilter remove(String name)
IoFilterChainremove in interface IoFilterChainname - The name of the filter to removepublic void remove(IoFilter filter)
IoFilterChainremove in interface IoFilterChainpublic IoFilter remove(Class<? extends IoFilter> filterType)
IoFilterChainremove in interface IoFilterChainpublic IoFilter replace(String name, IoFilter newFilter)
IoFilterChainreplace in interface IoFilterChainname - The name of the filter we want to replacenewFilter - The new filterpublic void replace(IoFilter oldFilter, IoFilter newFilter)
IoFilterChainreplace in interface IoFilterChainoldFilter - The filter we want to replacenewFilter - The new filterpublic IoFilter replace(Class<? extends IoFilter> oldFilterType, IoFilter newFilter)
IoFilterChainreplace in interface IoFilterChainoldFilterType - The filter class we want to replacenewFilter - The new filterpublic void clear()
throws Exception
IoFilterChainclear in interface IoFilterChainExceptionpublic void fireSessionCreated()
IoFilterChainIoHandler.sessionCreated(IoSession) event. Most users don't need to
call this method at all. Please use this method only when you implement a new transport
or fire a virtual event.fireSessionCreated in interface IoFilterChainpublic void fireSessionOpened()
IoFilterChainIoHandler.sessionOpened(IoSession) event. Most users don't need to call
this method at all. Please use this method only when you implement a new transport or
fire a virtual event.fireSessionOpened in interface IoFilterChainpublic void fireSessionClosed()
IoFilterChainIoHandler.sessionClosed(IoSession) event. Most users don't need to call
this method at all. Please use this method only when you implement a new transport or
fire a virtual event.fireSessionClosed in interface IoFilterChainpublic void fireSessionIdle(IdleStatus status)
IoFilterChainIoHandler.sessionIdle(IoSession, IdleStatus) event. Most users don't
need to call this method at all. Please use this method only when you implement a new
transport or fire a virtual event.fireSessionIdle in interface IoFilterChainstatus - The current status to propagatepublic void fireMessageReceived(Object message)
IoFilterChainIoHandler#messageReceived(Object) event. Most users don't need to
call this method at all. Please use this method only when you implement a new transport
or fire a virtual event.fireMessageReceived in interface IoFilterChainmessage - The received messagepublic void fireMessageSent(WriteRequest request)
IoFilterChainIoHandler#messageSent(IoSession) event. Most users don't need to call
this method at all. Please use this method only when you implement a new transport or
fire a virtual event.fireMessageSent in interface IoFilterChainrequest - The sent requestpublic void fireExceptionCaught(Throwable cause)
IoFilterChainIoHandler.exceptionCaught(IoSession, Throwable) event. Most users don't
need to call this method at all. Please use this method only when you implement a new
transport or fire a virtual event.fireExceptionCaught in interface IoFilterChaincause - The exception causepublic void fireFilterWrite(WriteRequest writeRequest)
IoFilterChainIoSession.write(Object) event. Most users don't need to call this
method at all. Please use this method only when you implement a new transport or fire a
virtual event.fireFilterWrite in interface IoFilterChainwriteRequest - The message to writepublic void fireFilterClose()
IoFilterChainIoSession.close() event. Most users don't need to call this method at
all. Please use this method only when you implement a new transport or fire a virtual
event.fireFilterClose in interface IoFilterChainpublic List<IoFilterChain.Entry> getAll()
getAll in interface IoFilterChainIoFilterChain.Entrys this chain contains.public List<IoFilterChain.Entry> getAllReversed()
getAllReversed in interface IoFilterChainIoFilterChain.Entrys this chain contains.public boolean contains(String name)
contains in interface IoFilterChainname - The filter's name we are looking forIoFilter with the
specified name.public boolean contains(IoFilter filter)
contains in interface IoFilterChainfilter - The filter we are looking forpublic boolean contains(Class<? extends IoFilter> filterType)
contains in interface IoFilterChainfilterType - The filter's class we are looking forIoFilter of the
specified filterType.