Interface IoFilterChain

All Known Implementing Classes:
DefaultIoFilterChain, VmPipeFilterChain

public interface IoFilterChain
A container of IoFilters that forwards IoHandler events to the consisting filters and terminal IoHandler sequentially. Every IoSession has its own IoFilterChain (1-to-1 relationship).
  • Method Details

    • getSession

      IoSession getSession()
      Returns:
      the parent IoSession of this chain.
    • getEntry

      IoFilterChain.Entry getEntry(String name)
      Returns the IoFilterChain.Entry with the specified name in this chain.
      Parameters:
      name - The filter's name we are looking for
      Returns:
      null if there's no such name in this chain
    • getEntry

      IoFilterChain.Entry getEntry(IoFilter filter)
      Returns the IoFilterChain.Entry with the specified filter in this chain.
      Parameters:
      filter - The Filter we are looking for
      Returns:
      null if there's no such filter in this chain
    • getEntry

      IoFilterChain.Entry getEntry(Class<? extends IoFilter> filterType)
      Returns the IoFilterChain.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.
      Parameters:
      filterType - The filter class we are looking for
      Returns:
      null if there's no such name in this chain
    • get

      IoFilter get(String name)
      Returns the IoFilter with the specified name in this chain.
      Parameters:
      name - the filter's name
      Returns:
      null if there's no such name in this chain
    • get

      IoFilter get(Class<? extends IoFilter> filterType)
      Returns the IoFilter with the specified filterType in this chain. If there's more than one filter with the specified type, the first match will be chosen.
      Parameters:
      filterType - The filter class
      Returns:
      null if there's no such name in this chain
    • getNextFilter

      IoFilter.NextFilter getNextFilter(String name)
      Returns the IoFilter.NextFilter of the IoFilter with the specified name in this chain.
      Parameters:
      name - The filter's name we want the next filter
      Returns:
      null if there's no such name in this chain
    • getNextFilter

      IoFilter.NextFilter getNextFilter(IoFilter filter)
      Returns the IoFilter.NextFilter of the specified IoFilter in this chain.
      Parameters:
      filter - The filter for which we want the next filter
      Returns:
      null if there's no such name in this chain
    • getNextFilter

      IoFilter.NextFilter getNextFilter(Class<? extends IoFilter> filterType)
      Returns the IoFilter.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.
      Parameters:
      filterType - The Filter class for which we want the next filter
      Returns:
      null if there's no such name in this chain
    • getAll

      Returns:
      The list of all IoFilterChain.Entrys this chain contains.
    • getAllReversed

      List<IoFilterChain.Entry> getAllReversed()
      Returns:
      The reversed list of all IoFilterChain.Entrys this chain contains.
    • contains

      boolean contains(String name)
      Parameters:
      name - The filter's name we are looking for
      Returns:
      true if this chain contains an IoFilter with the specified name.
    • contains

      boolean contains(IoFilter filter)
      Parameters:
      filter - The filter we are looking for
      Returns:
      true if this chain contains the specified filter.
    • contains

      boolean contains(Class<? extends IoFilter> filterType)
      Parameters:
      filterType - The filter's class we are looking for
      Returns:
      true if this chain contains an IoFilter of the specified filterType.
    • addFirst

      void addFirst(String name, IoFilter filter)
      Adds the specified filter with the specified name at the beginning of this chain.
      Parameters:
      name - The filter's name
      filter - The filter to add
    • addLast

      void addLast(String name, IoFilter filter)
      Adds the specified filter with the specified name at the end of this chain.
      Parameters:
      name - The filter's name
      filter - The filter to add
    • addBefore

      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.
      Parameters:
      baseName - The targeted Filter's name
      name - The filter's name
      filter - The filter to add
    • addAfter

      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.
      Parameters:
      baseName - The targeted Filter's name
      name - The filter's name
      filter - The filter to add
    • replace

      IoFilter replace(String name, IoFilter newFilter)
      Replace the filter with the specified name with the specified new filter.
      Parameters:
      name - The name of the filter we want to replace
      newFilter - The new filter
      Returns:
      the old filter
    • replace

      void replace(IoFilter oldFilter, IoFilter newFilter)
      Replace the filter with the specified name with the specified new filter.
      Parameters:
      oldFilter - The filter we want to replace
      newFilter - The new filter
    • replace

      IoFilter replace(Class<? extends IoFilter> oldFilterType, IoFilter newFilter)
      Replace the filter of the specified type with the specified new filter. If there's more than one filter with the specified type, the first match will be replaced.
      Parameters:
      oldFilterType - The filter class we want to replace
      newFilter - The new filter
      Returns:
      The replaced IoFilter
    • remove

      IoFilter remove(String name)
      Removes the filter with the specified name from this chain.
      Parameters:
      name - The name of the filter to remove
      Returns:
      The removed filter
    • remove

      void remove(IoFilter filter)
      Replace the filter with the specified name with the specified new filter.
      Parameters:
      filter - The filter to remove
    • remove

      IoFilter remove(Class<? extends IoFilter> filterType)
      Replace the filter of the specified type with the specified new filter. If there's more than one filter with the specified type, the first match will be replaced.
      Parameters:
      filterType - The filter class to remove
      Returns:
      The removed filter
    • clear

      void clear() throws Exception
      Removes all filters added to this chain.
      Throws:
      Exception - If we weren't able to clear the filters
    • fireSessionCreated

      void fireSessionCreated()
      Fires a IoHandler.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.
    • fireSessionOpened

      void fireSessionOpened()
      Fires a IoHandler.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.
    • fireSessionClosed

      void fireSessionClosed()
      Fires a IoHandler.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.
    • fireSessionIdle

      void fireSessionIdle(IdleStatus status)
      Fires a IoHandler.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.
      Parameters:
      status - The current status to propagate
    • fireMessageReceived

      void fireMessageReceived(Object message)
      Fires a IoHandler.messageReceived(IoSession, 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.
      Parameters:
      message - The received message
    • fireMessageSent

      void fireMessageSent(WriteRequest request)
      Fires a IoHandler.messageSent(IoSession, 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.
      Parameters:
      request - The sent request
    • fireExceptionCaught

      void fireExceptionCaught(Throwable cause)
      Fires a IoHandler.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.
      Parameters:
      cause - The exception cause
    • fireInputClosed

      void fireInputClosed()
      Fires a IoHandler.inputClosed(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.
    • fireFilterWrite

      void fireFilterWrite(WriteRequest writeRequest)
      Fires a IoSession.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.
      Parameters:
      writeRequest - The message to write
    • fireFilterClose

      void fireFilterClose()
      Fires a IoSession.closeNow() or a IoSession.closeOnFlush() 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.
    • fireEvent

      void fireEvent(FilterEvent event)
      Fires a IoHandler.event(IoSession, FilterEvent) 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.
      Parameters:
      event - The specific event being fired