|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
A bidirectional communications channel for the asynchronous exchange of buffers
. A channel is
lightweight and virtual in the sense that it does not necessarily represent a single physical connection like a TCP
socket connection. The underlying physical connection is represented by a channel
multiplexer
.
An example for opening a channel on an IConnector
and sending an IBuffer
:
// Open a channel IChannel channel = connector.openChannel(); short channelID = channel.getIndex(); // Fill a buffer Buffer buffer = bufferProvider.getBuffer(); ByteBuffer byteBuffer = buffer.startPutting(channelID); byteBuffer.putDouble(15.47); // Let the channel send the buffer without blocking channel.sendBuffer(buffer);
An example for receiving IBuffer
s from channels on an IConnector
:
// Create a receive handler final IBufferHandler receiveHandler = new IBufferHandler() { public void handleBuffer(IBuffer buffer) { ByteBuffer byteBuffer = buffer.getByteBuffer(); IOUtil.OUT().println("Received " + byteBuffer.getDouble()); buffer.release(); } }; // Set the receive handler to all new channels connector.addListener(new ContainerEventAdapter() { protected void onAdded(IContainer container, Object element) { IChannel channel = (IChannel)element; channel.setReceiveHandler(receiveHandler); } });
Nested Class Summary |
---|
Nested classes/interfaces inherited from interface org.eclipse.net4j.ILocationAware |
---|
ILocationAware.Location |
Method Summary | |
---|---|
short |
getID()
Returns the ID of this channel. |
IChannelMultiplexer |
getMultiplexer()
Returns the multiplexer this channel is associated with. |
IBufferHandler |
getReceiveHandler()
Returns the IBufferHandler that handles buffers received from the peer channel. |
void |
sendBuffer(IBuffer buffer)
Asynchronously sends the given buffer to the receive handler of the peer channel. |
void |
setReceiveHandler(IBufferHandler receiveHandler)
Sets the IBufferHandler to handle buffers received from the peer channel. |
Methods inherited from interface org.eclipse.net4j.ILocationAware |
---|
getLocation, isClient, isServer |
Methods inherited from interface org.eclipse.net4j.util.security.IUserAware |
---|
getUserID |
Methods inherited from interface org.eclipse.net4j.buffer.IBufferHandler |
---|
handleBuffer |
Methods inherited from interface org.eclipse.net4j.util.event.INotifier |
---|
addListener, getListeners, hasListeners, removeListener |
Methods inherited from interface org.eclipse.net4j.util.collection.Closeable |
---|
close, isClosed |
Method Detail |
---|
short getID()
multiplexer
.
IChannelMultiplexer getMultiplexer()
void sendBuffer(IBuffer buffer)
IBufferHandler getReceiveHandler()
IBufferHandler
that handles buffers received from the peer channel.
void setReceiveHandler(IBufferHandler receiveHandler)
IBufferHandler
to handle buffers received from the peer channel.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |