## Uses of Interface
org.eclipse.net4j.protocol.IProtocol

- Packages that use IProtocol
  Package | Description
  --- | ---
  org.eclipse.net4j | The Net4j transport layer.
  org.eclipse.net4j.channel | The Net4j transport layer concepts for dealing with channels.
  org.eclipse.net4j.protocol | The Net4j transport layer concepts for dealing with protocols.
  org.eclipse.net4j.signal | A framework for request/response based communication on top of the Net4j transport layer.
  org.eclipse.net4j.signal.heartbeat | A signal protocol implementation that realizes a configurable heart beat protocol.
  org.eclipse.net4j.signal.security | Reusable implementation of a server-to-client authentication signal and related API.
  org.eclipse.net4j.ws.jetty | Jetty-specific classes with support for Websocket connections.
  org.eclipse.spi.net4j | Server service provider interfaces and useful base implementations for the Net4j transport layer.

- - ### Uses of IProtocol in org.eclipse.net4j

    Methods in org.eclipse.net4j that return IProtocol
    Modifier and Type | Method | Description
    --- | --- | ---
    `IProtocol<?>` | ContainerProtocolProvider.`getProtocol​(java.lang.String type)` |
    `IProtocol<?>` | FactoriesProtocolProvider.`getProtocol​(java.lang.String type)` |

    Methods in org.eclipse.net4j with parameters of type IProtocol
    Modifier and Type | Method | Description
    --- | --- | ---
    `static java.lang.String` | Net4jUtil.`getProtocolID​(IProtocol<?> protocol)` |
    `static int` | Net4jUtil.`getProtocolVersion​(IProtocol<?> protocol)` |

  - ### Uses of IProtocol in org.eclipse.net4j.channel

    Methods in org.eclipse.net4j.channel with parameters of type IProtocol
    Modifier and Type | Method | Description
    --- | --- | ---
    `IChannel` | IChannelMultiplexer.`openChannel​(IProtocol<?> protocol)` | Synchronous request to open a new `IChannel` with the given channel protocol .

  - ### Uses of IProtocol in org.eclipse.net4j.protocol

    Subinterfaces of IProtocol in org.eclipse.net4j.protocol
    Modifier and Type | Interface | Description
    --- | --- | ---
    `interface` | `IProtocol2<INFRA_STRUCTURE>` | A `versioned` `protocol`.

    Methods in org.eclipse.net4j.protocol that return IProtocol
    Modifier and Type | Method | Description
    --- | --- | ---
    `IProtocol<?>` | IProtocolProvider.`getProtocol​(java.lang.String type)` |

    Methods in org.eclipse.net4j.protocol with parameters of type IProtocol
    Modifier and Type | Method | Description
    --- | --- | ---
    `static void` | ProtocolVersionException.`checkVersion​(IProtocol<?> protocol, int expectedVersion)` |

  - ### Uses of IProtocol in org.eclipse.net4j.signal

    Subinterfaces of IProtocol in org.eclipse.net4j.signal
    Modifier and Type | Interface | Description
    --- | --- | ---
    `interface` | `ISignalProtocol<INFRA_STRUCTURE>` | A `protocol` that consists of a number of stream-based `signals`.
    `static interface` | `ISignalProtocol.WithSignalCounters<INFRA_STRUCTURE>` |

    Classes in org.eclipse.net4j.signal that implement IProtocol
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `SignalProtocol<INFRA_STRUCTURE>` | The default implementation of a `signal protocol`.

  - ### Uses of IProtocol in org.eclipse.net4j.signal.heartbeat

    Classes in org.eclipse.net4j.signal.heartbeat that implement IProtocol
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `HeartBeatProtocol` | A `signal protocol` that keeps the `connector` of its `channel` open or provides early deactivation feedback by exchanging periodic heart beats.
    `static class` | `HeartBeatProtocol.Server` | The server-side implementation of a `heart beat protocol`.

  - ### Uses of IProtocol in org.eclipse.net4j.signal.security

    Classes in org.eclipse.net4j.signal.security that implement IProtocol
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `AuthenticatingSignalProtocol<INFRA_STRUCTURE extends org.eclipse.net4j.util.security.IPasswordCredentialsProvider.Provider>` | An abstract signal protocol that supports authentication.

  - ### Uses of IProtocol in org.eclipse.net4j.ws.jetty

    Methods in org.eclipse.net4j.ws.jetty with parameters of type IProtocol
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | Net4jWebSocket.`registerChannel​(short channelID, long timeout, IProtocol<?> protocol)` |

  - ### Uses of IProtocol in org.eclipse.spi.net4j

    Classes in org.eclipse.spi.net4j that implement IProtocol
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `Protocol<INFRA_STRUCTURE>` | If the meaning of this type isn't clear, there really should be more of a description here...

    Methods in org.eclipse.spi.net4j that return IProtocol
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected <INFRA_STRUCTURE> IProtocol<INFRA_STRUCTURE>` | ChannelMultiplexer.`createProtocol​(java.lang.String type, INFRA_STRUCTURE infraStructure)` |

    Methods in org.eclipse.spi.net4j with parameters of type IProtocol
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected void` | ChannelMultiplexer.`doBeforeOpenChannel​(IProtocol<?> protocol)` |
    `protected void` | Connector.`doBeforeOpenChannel​(IProtocol<?> protocol)` |
    `protected void` | ChannelMultiplexer.`initChannel​(InternalChannel channel, IProtocol<?> protocol)` |
    `protected void` | Connector.`initChannel​(InternalChannel channel, IProtocol<?> protocol)` |
    `InternalChannel` | ChannelMultiplexer.`openChannel​(IProtocol<?> protocol)` |
    `protected abstract void` | ChannelMultiplexer.`registerChannelWithPeer​(short channelID, long timeout, IProtocol<?> protocol)` |