Package org.eclipse.spi.net4j
Class Channel
java.lang.Object
org.eclipse.net4j.util.event.Notifier
org.eclipse.net4j.util.lifecycle.Lifecycle
org.eclipse.spi.net4j.Channel
- All Implemented Interfaces:
IBufferHandler
,IBufferProvider
,IChannel
,ILocationAware
,org.eclipse.net4j.util.collection.Closeable
,org.eclipse.net4j.util.concurrent.IExecutorServiceProvider
,org.eclipse.net4j.util.container.IManagedContainerProvider
,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.security.IUserAware
,InternalChannel
public class Channel
extends org.eclipse.net4j.util.lifecycle.Lifecycle
implements InternalChannel, org.eclipse.net4j.util.concurrent.IExecutorServiceProvider, org.eclipse.net4j.util.container.IManagedContainerProvider
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
Modifier and TypeClassDescriptionprotected class
Deprecated.As of 4.10 scheduled for future removal.protected class
Deprecated.As of 4.4 scheduled for future removal.protected class
A queue that holds buffers that shall be sent.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
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.InternalChannel
InternalChannel.CountersChangedEvent, InternalChannel.SendQueueEvent
-
Field Summary
Fields inherited from class org.eclipse.net4j.util.lifecycle.Lifecycle
USE_LABEL
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
protected Channel.ReceiverWork
createReceiverWork
(IBuffer buffer) Deprecated.As of 4.10 scheduled for future removal.protected void
protected void
protected void
short
Returns the capacity of the buffers provided byIBufferProvider.provideBuffer()
.org.eclipse.net4j.util.container.IManagedContainer
short
getID()
Returns the ID of this channel.Returns the multiplexer this channel is associated with.long
Returns the number ofbuffers
that are received from themultiplexer
of this channel and are passed on to thereceive handler
of this channel.final long
Returns the number of bytes that are received from themultiplexer
of this channel and are passed on to thereceive handler
of this channel.Deprecated.Returns theIBufferHandler
that handles buffers received from the peer channel.long
Returns the number ofbuffers
that are sent to themultiplexer
of this channel.final long
Returns the number of bytes that are sent to themultiplexer
of this channel.void
handleBuffer
(IBuffer buffer) Handles the given buffer.void
handleBufferFromMultiplexer
(IBuffer buffer) Handles a buffer sent by the multiplexer.boolean
isClient()
boolean
isClosed()
boolean
isServer()
Provides a buffer from thisBufferProvider
.void
retainBuffer
(IBuffer buffer) Retains a buffer to thisBufferProvider
.void
sendBuffer
(IBuffer buffer) Asynchronously sends the given buffer to the receive handler of the peer channel.void
setID
(short id) void
setMultiplexer
(IChannelMultiplexer channelMultiplexer) void
setReceiveExecutor
(ExecutorService receiveExecutor) Deprecated.void
setReceiveHandler
(IBufferHandler receiveHandler) Sets theIBufferHandler
to handle buffers received from the peer channel.void
toString()
protected void
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, isDeferredActivation
Methods inherited from class org.eclipse.net4j.util.event.Notifier
addListener, addUniqueListener, fireEvent, 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.util.lifecycle.ILifecycle
activate, deactivate, getLifecycleState, isActive
Methods inherited from interface org.eclipse.net4j.util.event.INotifier
addListener, getListeners, hasListeners, removeListener
-
Constructor Details
-
Channel
public Channel()
-
-
Method Details
-
getContainer
public org.eclipse.net4j.util.container.IManagedContainer getContainer()- Specified by:
getContainer
in interfaceorg.eclipse.net4j.util.container.IManagedContainerProvider
-
getUserID
- Specified by:
getUserID
in interfaceorg.eclipse.net4j.util.security.IUserAware
-
setUserID
- Specified by:
setUserID
in interfaceInternalChannel
-
getLocation
Description copied from interface:ILocationAware
- Specified by:
getLocation
in interfaceILocationAware
-
isClient
public boolean isClient()Description copied from interface:ILocationAware
- Specified by:
isClient
in interfaceILocationAware
-
isServer
public boolean isServer()Description copied from interface:ILocationAware
- Specified by:
isServer
in interfaceILocationAware
-
getMultiplexer
Description copied from interface:IChannel
Returns the multiplexer this channel is associated with. This channel multiplexer can be used, for example, to open additional channels that will be multiplexed through the same transport medium.- Specified by:
getMultiplexer
in interfaceIChannel
-
setMultiplexer
- Specified by:
setMultiplexer
in interfaceInternalChannel
-
getID
public short getID()Description copied from interface:IChannel
Returns the ID of this channel. The ID is unique at any time among all channels of the associatedmultiplexer
. -
setID
public void setID(short id) - Specified by:
setID
in interfaceInternalChannel
-
getExecutorService
- Specified by:
getExecutorService
in interfaceorg.eclipse.net4j.util.concurrent.IExecutorServiceProvider
- Since:
- 4.5
-
getReceiveExecutor
Deprecated.- Specified by:
getReceiveExecutor
in interfaceInternalChannel
-
setReceiveExecutor
Deprecated.- Specified by:
setReceiveExecutor
in interfaceInternalChannel
-
getReceiveHandler
Description copied from interface:IChannel
Returns theIBufferHandler
that handles buffers received from the peer channel.- Specified by:
getReceiveHandler
in interfaceIChannel
-
setReceiveHandler
Description copied from interface:IChannel
Sets theIBufferHandler
to handle buffers received from the peer channel.- Specified by:
setReceiveHandler
in interfaceIChannel
-
getSentBuffers
public long getSentBuffers()Description copied from interface:IChannel
Returns the number ofbuffers
that are sent to themultiplexer
of this channel.- Specified by:
getSentBuffers
in interfaceIChannel
- Since:
- 3.0
-
getSentBytes
public final long getSentBytes()Description copied from interface:IChannel
Returns the number of bytes that are sent to themultiplexer
of this channel.- Specified by:
getSentBytes
in interfaceIChannel
- Since:
- 4.13
-
getReceivedBuffers
public long getReceivedBuffers()Description copied from interface:IChannel
Returns the number ofbuffers
that are received from themultiplexer
of this channel and are passed on to thereceive handler
of this channel.- Specified by:
getReceivedBuffers
in interfaceIChannel
- Since:
- 3.0
-
getReceivedBytes
public final long getReceivedBytes()Description copied from interface:IChannel
Returns the number of bytes that are received from themultiplexer
of this channel and are passed on to thereceive handler
of this channel.- Specified by:
getReceivedBytes
in interfaceIChannel
- Since:
- 4.13
-
getSendQueue
- Specified by:
getSendQueue
in interfaceInternalChannel
-
sendBuffer
Description copied from interface:IChannel
Asynchronously sends the given buffer to the receive handler of the peer channel.- Specified by:
sendBuffer
in interfaceIChannel
-
handleBuffer
Handles the given buffer. Ensures it is in the PUTTING state (otherwise ignores it) and sends it on behalf of the send queue.- Specified by:
handleBuffer
in interfaceIBufferHandler
- Parameters:
buffer
- The buffer to be handled.- See Also:
-
IBuffer.getState()
BufferState.PUTTING
sendQueue
-
handleBufferFromMultiplexer
Handles a buffer sent by the multiplexer. Adds work to the receive queue or releases the buffer.- Specified by:
handleBufferFromMultiplexer
in interfaceInternalChannel
- See Also:
-
createReceiverWork
Deprecated.As of 4.10 scheduled for future removal. -
getBufferCapacity
public short getBufferCapacity()Description copied from interface:IBufferProvider
Returns the capacity of the buffers provided byIBufferProvider.provideBuffer()
.- Specified by:
getBufferCapacity
in interfaceIBufferProvider
-
provideBuffer
Description copied from interface:IBufferProvider
Provides a buffer from thisBufferProvider
.- Specified by:
provideBuffer
in interfaceIBufferProvider
-
retainBuffer
Description copied from interface:IBufferProvider
Retains a buffer to thisBufferProvider
.- Specified by:
retainBuffer
in interfaceIBufferProvider
-
toString
- Overrides:
toString
in classorg.eclipse.net4j.util.lifecycle.Lifecycle
-
doBeforeActivate
- Overrides:
doBeforeActivate
in classorg.eclipse.net4j.util.lifecycle.Lifecycle
- Throws:
Exception
-
doActivate
- Overrides:
doActivate
in classorg.eclipse.net4j.util.lifecycle.Lifecycle
- Throws:
Exception
-
doDeactivate
- Overrides:
doDeactivate
in classorg.eclipse.net4j.util.lifecycle.Lifecycle
- Throws:
Exception
-
unregisterFromMultiplexer
protected void unregisterFromMultiplexer() -
close
public void close()- Specified by:
close
in interfaceorg.eclipse.net4j.util.collection.Closeable
-
isClosed
public boolean isClosed()- Specified by:
isClosed
in interfaceorg.eclipse.net4j.util.collection.Closeable
-