|
|||||||||
| 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 IBuffers 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 | ||||||||