Package org.eclipse.spi.net4j

## Interface InternalChannelMultiplexer

- All Superinterfaces:
    `IBufferProvider`, `IChannelMultiplexer`, `org.eclipse.net4j.util.container.IContainer<IChannel>`, `ILocationAware`, `org.eclipse.net4j.util.event.INotifier`, `org.eclipse.net4j.util.properties.IPropertiesContainer`, `ITransportConfigAware`
  All Known Subinterfaces:
    `InternalConnector`
  All Known Implementing Classes:
    `ChannelMultiplexer`, `Connector`

      public interface InternalChannelMultiplexer
      extends IChannelMultiplexer, IBufferProvider, ITransportConfigAware

  If the meaning of this type isn't clear, there really should be more of a description here...
  Since:
    2.0
  Author:
    Eike Stepper
  No Implement
    This interface is not intended to be implemented by clients.
  No Extend
    This interface is not intended to be extended by clients.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Interface | Description
    --- | --- | ---
    `static interface` | `InternalChannelMultiplexer.BufferMultiplexer` |

    - ### Nested classes/interfaces inherited from interface org.eclipse.net4j.buffer.IBufferProvider

      `IBufferProvider.Introspection, IBufferProvider.Notification`

    - ### Nested classes/interfaces inherited from interface org.eclipse.net4j.util.container.IContainer

      `org.eclipse.net4j.util.container.IContainer.Modifiable<E extends java.lang.Object>, org.eclipse.net4j.util.container.IContainer.Persistable<E extends java.lang.Object>, org.eclipse.net4j.util.container.IContainer.Persistence<E extends java.lang.Object>`

    - ### Nested classes/interfaces inherited from interface org.eclipse.net4j.ILocationAware

      `ILocationAware.Location`

    - ### Nested classes/interfaces inherited from interface org.eclipse.net4j.util.event.INotifier

      `org.eclipse.net4j.util.event.INotifier.INotifier2`

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static java.lang.ThreadLocal<InternalChannelMultiplexer>` | `CONTEXT_MULTIPLEXER` |
    `static short` | `RESERVED_CHANNEL` |

    - ### Fields inherited from interface org.eclipse.net4j.channel.IChannelMultiplexer

      `DEFAULT_OPEN_CHANNEL_TIMEOUT, NO_CHANNEL_TIMEOUT`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `closeChannel​(InternalChannel channel)` |
    `void` | `multiplexChannel​(InternalChannel channel)` | Called by a `channel` each time a new `buffer` is available for multiplexing.

    - ### Methods inherited from interface org.eclipse.net4j.buffer.IBufferProvider

      `getBufferCapacity, provideBuffer, retainBuffer`

    - ### Methods inherited from interface org.eclipse.net4j.channel.IChannelMultiplexer

      `getChannels, getOpenChannelTimeout, openChannel, openChannel, openChannel, setOpenChannelTimeout`

    - ### Methods inherited from interface org.eclipse.net4j.util.container.IContainer

      `getElements, isEmpty`

    - ### Methods inherited from interface org.eclipse.net4j.ILocationAware

      `getLocation, isClient, isServer`

    - ### Methods inherited from interface org.eclipse.net4j.util.event.INotifier

      `addListener, getListeners, hasListeners, removeListener`

    - ### Methods inherited from interface org.eclipse.net4j.util.properties.IPropertiesContainer

      `properties`

    - ### Methods inherited from interface org.eclipse.net4j.ITransportConfigAware

      `getConfig, setConfig`

- - ### Field Detail

    - #### CONTEXT_MULTIPLEXER

          static final java.lang.ThreadLocal<InternalChannelMultiplexer> CONTEXT_MULTIPLEXER

      Since:
        4.5

    - #### RESERVED_CHANNEL

          static final short RESERVED_CHANNEL

      Since:
        4.0
      See Also:
        Constant Field Values

  - ### Method Detail

    - #### multiplexChannel

          void multiplexChannel​(InternalChannel channel)

      Called by a `channel` each time a new `buffer` is available for multiplexing. This or another buffer can be dequeued from the `send queue` of the channel.

    - #### closeChannel

          void closeChannel​(InternalChannel channel)

      Since:
        2.0