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 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.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 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
Constructors Constructor Description ChannelMultiplexer()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
closeChannel(InternalChannel channel)
protected InternalChannel
createChannel()
protected abstract org.eclipse.net4j.util.security.INegotiationContext
createNegotiationContext()
protected <INFRA_STRUCTURE>
IProtocol<INFRA_STRUCTURE>createProtocol(java.lang.String type, INFRA_STRUCTURE infraStructure)
protected org.eclipse.net4j.util.factory.IFactoryKey
createProtocolFactoryKey(java.lang.String type)
protected abstract void
deregisterChannelFromPeer(InternalChannel channel)
protected void
doBeforeOpenChannel(IProtocol<?> protocol)
protected void
doDeactivate()
InternalChannel
getChannel(short channelID)
java.util.Collection<IChannel>
getChannels()
Returns a collection of currently open channels.ITransportConfig
getConfig()
Returns the current transport configuration if there is one, a new empty one otherwise.IChannel[]
getElements()
java.util.concurrent.ExecutorService
getExecutorService()
long
getOpenChannelTimeout()
protected void
initChannel(InternalChannel channel, IProtocol<?> protocol)
void
inverseClose()
void
inverseCloseChannel(short channelID)
InternalChannel
inverseOpenChannel(short channelID, java.lang.String protocolID)
Deprecated.InternalChannel
inverseOpenChannel(short channelID, java.lang.String protocolID, int protocolVersion)
boolean
isEmpty()
InternalChannel
openChannel()
Synchronous request to open a newIChannel
with an undefined channel protocol.InternalChannel
openChannel(java.lang.String protocolID, java.lang.Object infraStructure)
Synchronous request to open a newIChannel
with a channel protocol defined by a given protocol identifier.InternalChannel
openChannel(IProtocol<?> protocol)
Synchronous request to open a newIChannel
with the given channel protocol .org.eclipse.net4j.util.registry.IRegistry<java.lang.String,java.lang.Object>
properties()
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
-
-
-
-
Method Detail
-
properties
public final org.eclipse.net4j.util.registry.IRegistry<java.lang.String,java.lang.Object> properties()
- Specified by:
properties
in interfaceorg.eclipse.net4j.util.properties.IPropertiesContainer
- Since:
- 4.12
-
getConfig
public ITransportConfig 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
public void setConfig(ITransportConfig config)
Description copied from interface:ITransportConfigAware
Sets a new transport configuration by copying the given one.- Specified by:
setConfig
in interfaceITransportConfigAware
-
getExecutorService
public java.util.concurrent.ExecutorService 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
public final InternalChannel getChannel(short channelID)
-
getChannels
public final java.util.Collection<IChannel> getChannels()
Description copied from interface:IChannelMultiplexer
Returns a collection of currently open channels.- Specified by:
getChannels
in interfaceIChannelMultiplexer
-
isEmpty
public boolean isEmpty()
-
getElements
public IChannel[] getElements()
- Specified by:
getElements
in interfaceorg.eclipse.net4j.util.container.IContainer<IChannel>
-
openChannel
public InternalChannel openChannel() throws ChannelException
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:
IChannelMultiplexer.openChannel(String, Object)
,IChannelMultiplexer.openChannel(IProtocol)
-
openChannel
public InternalChannel openChannel(java.lang.String protocolID, java.lang.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:
IChannelMultiplexer.openChannel()
,IChannelMultiplexer.openChannel(IProtocol)
-
openChannel
public InternalChannel openChannel(IProtocol<?> protocol) throws ChannelException
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:
IChannelMultiplexer.openChannel()
,IChannelMultiplexer.openChannel(String, Object)
-
inverseOpenChannel
@Deprecated public InternalChannel inverseOpenChannel(short channelID, java.lang.String protocolID)
Deprecated.
-
inverseOpenChannel
public InternalChannel inverseOpenChannel(short channelID, java.lang.String protocolID, int protocolVersion)
- Since:
- 4.2
-
closeChannel
public void closeChannel(InternalChannel channel) throws ChannelException
- Specified by:
closeChannel
in interfaceInternalChannelMultiplexer
- Throws:
ChannelException
-
inverseCloseChannel
public void inverseCloseChannel(short channelID) throws ChannelException
- Throws:
ChannelException
-
inverseClose
public void inverseClose()
- Specified by:
inverseClose
in interfaceInverseCloseable
-
createChannel
protected InternalChannel createChannel()
-
initChannel
protected void initChannel(InternalChannel channel, IProtocol<?> protocol)
-
createProtocol
protected <INFRA_STRUCTURE> IProtocol<INFRA_STRUCTURE> createProtocol(java.lang.String type, INFRA_STRUCTURE infraStructure)
-
createProtocolFactoryKey
protected org.eclipse.net4j.util.factory.IFactoryKey createProtocolFactoryKey(java.lang.String type)
-
doBeforeOpenChannel
protected void doBeforeOpenChannel(IProtocol<?> protocol)
-
doDeactivate
protected void doDeactivate() throws java.lang.Exception
- Overrides:
doDeactivate
in classorg.eclipse.net4j.util.lifecycle.Lifecycle
- Throws:
java.lang.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
protected abstract void deregisterChannelFromPeer(InternalChannel channel) throws ChannelException
- Throws:
ChannelException
-
-