org.eclipse.spi.net4j

## Class Connector

- java.lang.Object
- - org.eclipse.net4j.util.event.Notifier
  - - org.eclipse.net4j.util.lifecycle.Lifecycle
    - - org.eclipse.net4j.util.lifecycle.ShareableLifecycle
      - - org.eclipse.net4j.util.container.Container<IChannel>
        - - org.eclipse.spi.net4j.ChannelMultiplexer
          - - org.eclipse.spi.net4j.Connector

- All Implemented Interfaces:
    IBufferProvider, IChannelMultiplexer, IConnector, ILocationAware, ITransportConfigAware, Closeable, IContainer<IChannel>, INotifier, IDeactivateable, ILifecycle, ILifecycle.DeferrableActivation, INegotiatorAware, IUserAware, InternalChannelMultiplexer, InternalConnector

      public abstract class Connector
      extends ChannelMultiplexer
      implements InternalConnector

  If the meaning of this type isn't clear, there really should be more of a description here...
  Since:
    2.0
  Author:
    Eike Stepper

- - ### Nested Class Summary

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

      `ILocationAware.Location`

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

      `IContainer.Modifiable<E>, IContainer.Persistable<E>, IContainer.Persistence<E>`

    - ### 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.lifecycle.ILifecycle

      `ILifecycle.DeferrableActivation`

  - ### Field Summary

    - ### Fields inherited from class org.eclipse.net4j.util.lifecycle.Lifecycle

      `USE_LABEL`

    - ### Fields inherited from interface org.eclipse.net4j.connector.IConnector

      `NO_TIMEOUT`

    - ### Fields inherited from interface org.eclipse.spi.net4j.InternalChannelMultiplexer

      `CONTEXT_MULTIPLEXER, RESERVED_CHANNEL`

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

      `DEFAULT_OPEN_CHANNEL_TIMEOUT, NO_CHANNEL_TIMEOUT`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Connector()`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `close()`
    `void` | `connect()` Synchronous connect with infinite timeout value.
    `void` | `connect(long timeout)` Synchronous connect.
    `void` | `connectAsync()` Asynchronous connect.
    `protected abstract INegotiationContext` | `createNegotiationContext()`
    `protected void` | `deregisterChannelFromPeer(InternalChannel channel)`
    `protected void` | `doActivate()`
    `protected void` | `doBeforeActivate()`
    `protected void` | `doBeforeOpenChannel(IProtocol<?> protocol)`
    `protected void` | `doDeactivate()`
    `short` | `getBufferCapacity()` Returns the capacity of the buffers provided by `IBufferProvider.provideBuffer()` .
    `ILocationAware.Location` | `getLocation()` Returns the location of this object in a `client`/`server` scenario.
    `INegotiationContext` | `getNegotiationContext()`
    `protected NegotiationException` | `getNegotiationException()`
    `INegotiator` | `getNegotiator()`
    `ConnectorState` | `getState()` Returns the current state of this connector.
    `java.lang.String` | `getURL()`
    `java.lang.String` | `getUserID()`
    `protected void` | `initChannel(InternalChannel channel, IProtocol<?> protocol)`
    `boolean` | `isClient()` Same as ``ILocationAware.getLocation()` == `ILocationAware.Location.CLIENT``.
    `boolean` | `isClosed()`
    `boolean` | `isConnected()` Same as ``IConnector.getState()` == `ConnectorState.CONNECTED``.
    `boolean` | `isConnecting()`
    `boolean` | `isDeferredActivation()`
    `boolean` | `isDisconnected()`
    `boolean` | `isNegotiating()`
    `boolean` | `isServer()` Same as ``ILocationAware.getLocation()` == `ILocationAware.Location.SERVER``.
    `protected void` | `leaveConnecting()`
    `IBuffer` | `provideBuffer()` Provides a buffer from this `BufferProvider`.
    `void` | `retainBuffer(IBuffer buffer)` Retains a buffer to this `BufferProvider`.
    `protected void` | `setNegotiationException(NegotiationException negotiationException)`
    `void` | `setNegotiator(INegotiator negotiator)`
    `void` | `setState(ConnectorState newState)`
    `void` | `setUserID(java.lang.String userID)`
    `void` | `waitForConnection(long timeout)` Blocks until ``IConnector.isConnected()` == true` or the given timeout expired.

    - ### Methods inherited from class org.eclipse.spi.net4j.ChannelMultiplexer

      `closeChannel, createChannel, createProtocol, createProtocolFactoryKey, getChannel, getChannels, getConfig, getElements, getOpenChannelTimeout, inverseCloseChannel, inverseOpenChannel, inverseOpenChannel, isEmpty, openChannel, openChannel, openChannel, registerChannelWithPeer, setConfig, setOpenChannelTimeout`

    - ### Methods inherited from class org.eclipse.net4j.util.container.Container

      `fireContainerEvent, fireContainerEvent, fireContainerEvent, fireElementAddedEvent, fireElementRemovedEvent, fireElementsAddedEvent, fireElementsRemovedEvent, fireEvent, newContainerEvent, newContainerEvent`

    - ### Methods inherited from class org.eclipse.net4j.util.lifecycle.Lifecycle

      `activate, checkActive, checkArg, checkArg, checkInactive, checkNull, checkState, checkState, deactivate, deferredActivate, doAfterActivate, doBeforeDeactivate, dump, getLifecycleState, isActive, toString`

    - ### Methods inherited from class org.eclipse.net4j.util.event.Notifier

      `addListener, fireEvent, fireEvent, fireThrowable, firstListenerAdded, getListeners, getNotificationService, hasListeners, lastListenerRemoved, removeListener`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface org.eclipse.spi.net4j.InternalChannelMultiplexer

      `closeChannel, multiplexChannel`

    - ### 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.util.event.INotifier

      `addListener, getListeners, hasListeners, removeListener`

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

      `getConfig, setConfig`

- - ### Constructor Detail

    - #### Connector

          public Connector()

  - ### Method Detail

    - #### getNegotiator

          public INegotiator getNegotiator()

      Specified by:
        `getNegotiator` in interface `INegotiatorAware`

    - #### setNegotiator

          public void setNegotiator(INegotiator negotiator)

      Specified by:
        `setNegotiator` in interface `INegotiatorAware`

    - #### getNegotiationContext

          public INegotiationContext getNegotiationContext()

    - #### isClient

          public boolean isClient()

      Description copied from interface: `ILocationAware`
      Same as ``ILocationAware.getLocation()` == `ILocationAware.Location.CLIENT``.
      Specified by:
        `isClient` in interface `ILocationAware`

    - #### isServer

          public boolean isServer()

      Description copied from interface: `ILocationAware`
      Same as ``ILocationAware.getLocation()` == `ILocationAware.Location.SERVER``.
      Specified by:
        `isServer` in interface `ILocationAware`

    - #### getUserID

          public java.lang.String getUserID()

      Specified by:
        `getUserID` in interface `IUserAware`

    - #### setUserID

          public void setUserID(java.lang.String userID)

    - #### getState

          public ConnectorState getState()

      Description copied from interface: `IConnector`
      Returns the current state of this connector.
      Specified by:
        `getState` in interface `IConnector`

    - #### setState

          public void setState(ConnectorState newState)
                        throws ConnectorException

      Throws:
        `ConnectorException`

    - #### isDisconnected

          public boolean isDisconnected()

    - #### isConnecting

          public boolean isConnecting()

    - #### isNegotiating

          public boolean isNegotiating()

    - #### isConnected

          public boolean isConnected()

      Description copied from interface: `IConnector`
      Same as ``IConnector.getState()` == `ConnectorState.CONNECTED``.
      Specified by:
        `isConnected` in interface `IConnector`

    - #### connectAsync

          public void connectAsync()
                            throws ConnectorException

      Description copied from interface: `IConnector`
      Asynchronous connect. May leave this `IConnector` in a state where ``IConnector.isConnected()` == false` .
      Specified by:
        `connectAsync` in interface `IConnector`
      Throws:
        `ConnectorException`
      See Also:
        `IConnector.waitForConnection(long)`, `IConnector.connect(long)`

    - #### waitForConnection

          public void waitForConnection(long timeout)
                                 throws ConnectorException

      Description copied from interface: `IConnector`
      Blocks until ``IConnector.isConnected()` == true` or the given timeout expired.
      Specified by:
        `waitForConnection` in interface `IConnector`
      Parameters:
        `timeout` - The maximum number of milli seconds to block or `IConnector.NO_TIMEOUT` to block indefinetely in case no connection occurs.
      Throws:
        `ConnectorException`
      Since:
        4.0

    - #### connect

          public void connect(long timeout)
                       throws ConnectorException

      Description copied from interface: `IConnector`
      Synchronous connect. Blocks until ``IConnector.isConnected()` == true` or the given timeout expired.
      Specified by:
        `connect` in interface `IConnector`
      Parameters:
        `timeout` - The maximum number of milli seconds to block or `IConnector.NO_TIMEOUT` to block indefinetely in case no connection occurs.
      Throws:
        `ConnectorException`
      Since:
        4.0

    - #### connect

          public void connect()
                       throws ConnectorException

      Description copied from interface: `IConnector`
      Synchronous connect with infinite timeout value. Same as `connect(NO_TIMEOUT)`.
      Specified by:
        `connect` in interface `IConnector`
      Throws:
        `ConnectorException`
      Since:
        4.0

    - #### close

          public void close()

      Specified by:
        `close` in interface `Closeable`

    - #### isClosed

          public boolean isClosed()

      Specified by:
        `isClosed` in interface `Closeable`

    - #### getBufferCapacity

          public short getBufferCapacity()

      Description copied from interface: `IBufferProvider`
      Returns the capacity of the buffers provided by `IBufferProvider.provideBuffer()` .
      Specified by:
        `getBufferCapacity` in interface `IBufferProvider`

    - #### provideBuffer

          public IBuffer provideBuffer()

      Description copied from interface: `IBufferProvider`
      Provides a buffer from this `BufferProvider`.
      Specified by:
        `provideBuffer` in interface `IBufferProvider`

    - #### retainBuffer

          public void retainBuffer(IBuffer buffer)

      Description copied from interface: `IBufferProvider`
      Retains a buffer to this `BufferProvider`.
      Specified by:
        `retainBuffer` in interface `IBufferProvider`

    - #### leaveConnecting

          protected void leaveConnecting()

    - #### createNegotiationContext

          protected abstract INegotiationContext createNegotiationContext()

      Specified by:
        `createNegotiationContext` in class `ChannelMultiplexer`

    - #### getNegotiationException

          protected NegotiationException getNegotiationException()

    - #### setNegotiationException

          protected void setNegotiationException(NegotiationException negotiationException)

    - #### initChannel

          protected void initChannel(InternalChannel channel,
                                     IProtocol<?> protocol)

      Overrides:
        `initChannel` in class `ChannelMultiplexer`

    - #### deregisterChannelFromPeer

          protected void deregisterChannelFromPeer(InternalChannel channel)
                                            throws ChannelException

      Specified by:
        `deregisterChannelFromPeer` in class `ChannelMultiplexer`
      Throws:
        `ChannelException`

    - #### getLocation

          public ILocationAware.Location getLocation()

      Description copied from interface: `ILocationAware`
      Returns the location of this object in a `client`/`server` scenario.
      Specified by:
        `getLocation` in interface `ILocationAware`

    - #### getURL

          public java.lang.String getURL()

      Specified by:
        `getURL` in interface `IConnector`

    - #### isDeferredActivation

          public boolean isDeferredActivation()

      Specified by:
        `isDeferredActivation` in interface `ILifecycle.DeferrableActivation`
      Overrides:
        `isDeferredActivation` in class `Lifecycle`
      Since:
        4.1

    - #### doBeforeOpenChannel

          protected void doBeforeOpenChannel(IProtocol<?> protocol)

      Overrides:
        `doBeforeOpenChannel` in class `ChannelMultiplexer`

    - #### doBeforeActivate

          protected void doBeforeActivate()
                                   throws java.lang.Exception

      Overrides:
        `doBeforeActivate` in class `Lifecycle`
      Throws:
        `java.lang.Exception`

    - #### doActivate

          protected void doActivate()
                             throws java.lang.Exception

      Overrides:
        `doActivate` in class `Lifecycle`
      Throws:
        `java.lang.Exception`

    - #### doDeactivate

          protected void doDeactivate()
                               throws java.lang.Exception

      Overrides:
        `doDeactivate` in class `ChannelMultiplexer`
      Throws:
        `java.lang.Exception`

Copyright (c) 2014 Eike Stepper (Berlin, Germany) and others.
All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html