Package org.eclipse.spi.net4j
Class ChannelMultiplexer
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
- All Implemented Interfaces:
IBufferProvider
,IChannelMultiplexer
,ILocationAware
,ITransportConfigAware
,org.eclipse.net4j.util.concurrent.IExecutorServiceProvider
,org.eclipse.net4j.util.container.IContainer<IChannel>
,org.eclipse.net4j.util.event.INotifier
,org.eclipse.net4j.util.event.INotifier.INotifier2
,org.eclipse.net4j.util.lifecycle.IDeactivateable
,org.eclipse.net4j.util.lifecycle.ILifecycle
,org.eclipse.net4j.util.lifecycle.ILifecycle.DeferrableActivation
,org.eclipse.net4j.util.properties.IPropertiesContainer
,InternalChannelMultiplexer
,InverseCloseable
- Direct Known Subclasses:
Connector
public abstract class ChannelMultiplexer
extends org.eclipse.net4j.util.container.Container<IChannel>
implements InternalChannelMultiplexer, org.eclipse.net4j.util.concurrent.IExecutorServiceProvider, InverseCloseable
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.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 Object>, org.eclipse.net4j.util.container.IContainer.Persistable<E extends Object>, org.eclipse.net4j.util.container.IContainer.Persistence<E extends Object>
Nested classes/interfaces inherited from interface org.eclipse.net4j.util.lifecycle.ILifecycle
org.eclipse.net4j.util.lifecycle.ILifecycle.DeferrableActivation
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
Nested classes/interfaces inherited from interface org.eclipse.spi.net4j.InternalChannelMultiplexer
InternalChannelMultiplexer.BufferMultiplexer
-
Field Summary
Fields inherited from class org.eclipse.net4j.util.lifecycle.Lifecycle
USE_LABEL
Fields inherited from interface org.eclipse.net4j.channel.IChannelMultiplexer
DEFAULT_OPEN_CHANNEL_TIMEOUT, NO_CHANNEL_TIMEOUT
Fields inherited from interface org.eclipse.spi.net4j.InternalChannelMultiplexer
CONTEXT_MULTIPLEXER, RESERVED_CHANNEL
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
closeChannel
(InternalChannel channel) protected InternalChannel
protected abstract org.eclipse.net4j.util.security.INegotiationContext
protected <INFRA_STRUCTURE>
IProtocol<INFRA_STRUCTURE>createProtocol
(String type, INFRA_STRUCTURE infraStructure) protected org.eclipse.net4j.util.factory.IFactoryKey
protected abstract void
deregisterChannelFromPeer
(InternalChannel channel) protected void
doBeforeOpenChannel
(IProtocol<?> protocol) protected void
final InternalChannel
getChannel
(short channelID) final Collection<IChannel>
Returns a collection of currently open channels.Returns the current transport configuration if there is one, a new empty one otherwise.IChannel[]
long
protected void
initChannel
(InternalChannel channel, IProtocol<?> protocol) void
void
inverseCloseChannel
(short channelID) inverseOpenChannel
(short channelID, String protocolID) Deprecated.inverseOpenChannel
(short channelID, String protocolID, int protocolVersion) boolean
isEmpty()
boolean
Synchronous request to open a newIChannel
with an undefined channel protocol.openChannel
(String protocolID, Object infraStructure) Synchronous request to open a newIChannel
with a channel protocol defined by a given protocol identifier.openChannel
(IProtocol<?> protocol) Synchronous request to open a newIChannel
with the given channel protocol .protected abstract void
registerChannelWithPeer
(short channelID, long timeout, IProtocol<?> protocol) void
setConfig
(ITransportConfig config) Sets a new transport configuration by copying the given one.void
setOpenChannelTimeout
(long openChannelTimeout) 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, doActivate, doAfterActivate, doBeforeActivate, doBeforeDeactivate, dump, getLifecycleState, isActive, isDeferredActivation, toString
Methods inherited from class org.eclipse.net4j.util.event.Notifier
addListener, addUniqueListener, fireEvent, fireEvent, fireThrowable, firstListenerAdded, getListeners, getNotificationService, hasListener, hasListeners, lastListenerRemoved, listenerAdded, listenerRemoved, removeListener
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.eclipse.net4j.buffer.IBufferProvider
getBufferCapacity, provideBuffer, retainBuffer
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.spi.net4j.InternalChannelMultiplexer
multiplexChannel
-
Constructor Details
-
ChannelMultiplexer
public ChannelMultiplexer()
-
-
Method Details
-
properties
- Specified by:
properties
in interfaceorg.eclipse.net4j.util.properties.IPropertiesContainer
- Since:
- 4.12
-
needsBufferProvider
public boolean needsBufferProvider()- Specified by:
needsBufferProvider
in interfaceInternalChannelMultiplexer
-
getConfig
Description copied from interface:ITransportConfigAware
Returns the current transport configuration if there is one, a new empty one otherwise.- Specified by:
getConfig
in interfaceITransportConfigAware
-
setConfig
Description copied from interface:ITransportConfigAware
Sets a new transport configuration by copying the given one.- Specified by:
setConfig
in interfaceITransportConfigAware
-
getExecutorService
- Specified by:
getExecutorService
in interfaceorg.eclipse.net4j.util.concurrent.IExecutorServiceProvider
-
getOpenChannelTimeout
public long getOpenChannelTimeout()- Specified by:
getOpenChannelTimeout
in interfaceIChannelMultiplexer
-
setOpenChannelTimeout
public void setOpenChannelTimeout(long openChannelTimeout) - Specified by:
setOpenChannelTimeout
in interfaceIChannelMultiplexer
-
getChannel
-
getChannels
Description copied from interface:IChannelMultiplexer
Returns a collection of currently open channels.- Specified by:
getChannels
in interfaceIChannelMultiplexer
-
isEmpty
public boolean isEmpty() -
getElements
- Specified by:
getElements
in interfaceorg.eclipse.net4j.util.container.IContainer<IChannel>
-
openChannel
Description copied from interface:IChannelMultiplexer
Synchronous request to open a newIChannel
with an undefined channel protocol. Since the peer connector can't lookup a protocolfactory
without a protocol identifier theIBufferHandler
of the peerIChannel
can only be provided by externally provided channellifecycle
listeners
.- Specified by:
openChannel
in interfaceIChannelMultiplexer
- Throws:
ChannelException
- See Also:
-
openChannel
public InternalChannel openChannel(String protocolID, Object infraStructure) throws ChannelException Description copied from interface:IChannelMultiplexer
Synchronous request to open a newIChannel
with a channel protocol defined by a given protocol identifier. The peer connector will lookup a protocolfactory
with the protocol identifier, create aIBufferHandler
and inject it into the peerIChannel
.- Specified by:
openChannel
in interfaceIChannelMultiplexer
- Throws:
ChannelException
- See Also:
-
openChannel
Description copied from interface:IChannelMultiplexer
Synchronous request to open a newIChannel
with the given channel protocol . The peer connector will lookup a protocolfactory
with the protocol identifier, create aIBufferHandler
and inject it into the peer channel.- Specified by:
openChannel
in interfaceIChannelMultiplexer
- Throws:
ChannelException
- See Also:
-
inverseOpenChannel
Deprecated. -
inverseOpenChannel
- Since:
- 4.2
-
closeChannel
- Specified by:
closeChannel
in interfaceInternalChannelMultiplexer
- Throws:
ChannelException
-
inverseCloseChannel
- Throws:
ChannelException
-
inverseClose
public void inverseClose()- Specified by:
inverseClose
in interfaceInverseCloseable
-
createChannel
-
initChannel
-
createProtocol
-
createProtocolFactoryKey
-
doBeforeOpenChannel
-
doDeactivate
- Overrides:
doDeactivate
in classorg.eclipse.net4j.util.lifecycle.Lifecycle
- Throws:
Exception
-
createNegotiationContext
protected abstract org.eclipse.net4j.util.security.INegotiationContext createNegotiationContext() -
registerChannelWithPeer
protected abstract void registerChannelWithPeer(short channelID, long timeout, IProtocol<?> protocol) throws ChannelException - Throws:
ChannelException
-
deregisterChannelFromPeer
- Throws:
ChannelException
-
inverseOpenChannel(short, String, int)
.