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 voidcloseChannel(InternalChannel channel)protected InternalChannelcreateChannel()protected abstract org.eclipse.net4j.util.security.INegotiationContextcreateNegotiationContext()protected <INFRA_STRUCTURE>
IProtocol<INFRA_STRUCTURE>createProtocol(java.lang.String type, INFRA_STRUCTURE infraStructure)protected org.eclipse.net4j.util.factory.IFactoryKeycreateProtocolFactoryKey(java.lang.String type)protected abstract voidderegisterChannelFromPeer(InternalChannel channel)protected voiddoBeforeOpenChannel(IProtocol<?> protocol)protected voiddoDeactivate()InternalChannelgetChannel(short channelID)java.util.Collection<IChannel>getChannels()Returns a collection of currently open channels.ITransportConfiggetConfig()Returns the current transport configuration if there is one, a new empty one otherwise.IChannel[]getElements()java.util.concurrent.ExecutorServicegetExecutorService()longgetOpenChannelTimeout()protected voidinitChannel(InternalChannel channel, IProtocol<?> protocol)voidinverseClose()voidinverseCloseChannel(short channelID)InternalChannelinverseOpenChannel(short channelID, java.lang.String protocolID)Deprecated.InternalChannelinverseOpenChannel(short channelID, java.lang.String protocolID, int protocolVersion)booleanisEmpty()InternalChannelopenChannel()Synchronous request to open a newIChannelwith an undefined channel protocol.InternalChannelopenChannel(java.lang.String protocolID, java.lang.Object infraStructure)Synchronous request to open a newIChannelwith a channel protocol defined by a given protocol identifier.InternalChannelopenChannel(IProtocol<?> protocol)Synchronous request to open a newIChannelwith the given channel protocol .org.eclipse.net4j.util.registry.IRegistry<java.lang.String,java.lang.Object>properties()protected abstract voidregisterChannelWithPeer(short channelID, long timeout, IProtocol<?> protocol)voidsetConfig(ITransportConfig config)Sets a new transport configuration by copying the given one.voidsetOpenChannelTimeout(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:
propertiesin interfaceorg.eclipse.net4j.util.properties.IPropertiesContainer- Since:
- 4.12
-
getConfig
public ITransportConfig getConfig()
Description copied from interface:ITransportConfigAwareReturns the current transport configuration if there is one, a new empty one otherwise.- Specified by:
getConfigin interfaceITransportConfigAware
-
setConfig
public void setConfig(ITransportConfig config)
Description copied from interface:ITransportConfigAwareSets a new transport configuration by copying the given one.- Specified by:
setConfigin interfaceITransportConfigAware
-
getExecutorService
public java.util.concurrent.ExecutorService getExecutorService()
- Specified by:
getExecutorServicein interfaceorg.eclipse.net4j.util.concurrent.IExecutorServiceProvider
-
getOpenChannelTimeout
public long getOpenChannelTimeout()
- Specified by:
getOpenChannelTimeoutin interfaceIChannelMultiplexer
-
setOpenChannelTimeout
public void setOpenChannelTimeout(long openChannelTimeout)
- Specified by:
setOpenChannelTimeoutin interfaceIChannelMultiplexer
-
getChannel
public final InternalChannel getChannel(short channelID)
-
getChannels
public final java.util.Collection<IChannel> getChannels()
Description copied from interface:IChannelMultiplexerReturns a collection of currently open channels.- Specified by:
getChannelsin interfaceIChannelMultiplexer
-
isEmpty
public boolean isEmpty()
-
getElements
public IChannel[] getElements()
- Specified by:
getElementsin interfaceorg.eclipse.net4j.util.container.IContainer<IChannel>
-
openChannel
public InternalChannel openChannel() throws ChannelException
Description copied from interface:IChannelMultiplexerSynchronous request to open a newIChannelwith an undefined channel protocol. Since the peer connector can't lookup a protocolfactorywithout a protocol identifier theIBufferHandlerof the peerIChannelcan only be provided by externally provided channellifecyclelisteners.- Specified by:
openChannelin 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:IChannelMultiplexerSynchronous request to open a newIChannelwith a channel protocol defined by a given protocol identifier. The peer connector will lookup a protocolfactorywith the protocol identifier, create aIBufferHandlerand inject it into the peerIChannel.- Specified by:
openChannelin interfaceIChannelMultiplexer- Throws:
ChannelException- See Also:
IChannelMultiplexer.openChannel(),IChannelMultiplexer.openChannel(IProtocol)
-
openChannel
public InternalChannel openChannel(IProtocol<?> protocol) throws ChannelException
Description copied from interface:IChannelMultiplexerSynchronous request to open a newIChannelwith the given channel protocol . The peer connector will lookup a protocolfactorywith the protocol identifier, create aIBufferHandlerand inject it into the peer channel.- Specified by:
openChannelin 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:
closeChannelin interfaceInternalChannelMultiplexer- Throws:
ChannelException
-
inverseCloseChannel
public void inverseCloseChannel(short channelID) throws ChannelException- Throws:
ChannelException
-
inverseClose
public void inverseClose()
- Specified by:
inverseClosein 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:
doDeactivatein 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
-
-