|
The Meta-Environment API | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objecttoolbus.communication.AbstractConnectionHandler
toolbus.adapter.ToolConnectionHandler
public class ToolConnectionHandler
This class handles the opening and closing of the tool's connection with the ToolBus and provides access to the multiplexers that are handling network I/O.
| Field Summary | |
|---|---|
private static int |
HANDSHAKEBUFFERSIZE
|
private SocketReadWriteMultiplexer |
socketReadWriteMultiplexer
|
| Constructor Summary | |
|---|---|
ToolConnectionHandler(ToolBridge toolBridge,
java.net.InetAddress host,
int port)
Constructor. |
|
| Method Summary | |
|---|---|
void |
closeConnection(java.nio.channels.SocketChannel socketChannel)
Closes the connection associated with the given socket channel. |
IReadMultiplexer |
getReadMultiplexer()
Returns a reference to the read multiplexer. |
IWriteMultiplexer |
getWriteMultiplexer()
Returns a reference to the write multiplexer. |
private aterm.ATerm |
readTermFromChannel(aterm.pure.PureFactory factory,
java.nio.channels.SocketChannel socketChannel,
java.nio.ByteBuffer byteBuffer)
Reads a term from the given channel, using the given buffer. |
void |
run()
Starts the multiplexer. |
private void |
shakeHands(java.nio.channels.SocketChannel socketChannel,
ToolBridge toolBridge)
Negotiates with the ToolBus (about some stuff) and checks if the tool adheres to the expected interface. |
private void |
writeTermToChannel(aterm.ATerm aTerm,
java.nio.channels.SocketChannel socketChannel,
java.nio.ByteBuffer byteBuffer)
Transmits the term to the given socket channel, using the given buffer. |
| Methods inherited from class toolbus.communication.AbstractConnectionHandler |
|---|
closeDueToDisconnect, closeDueToException |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
private static final int HANDSHAKEBUFFERSIZE
private final SocketReadWriteMultiplexer socketReadWriteMultiplexer
| Constructor Detail |
|---|
public ToolConnectionHandler(ToolBridge toolBridge,
java.net.InetAddress host,
int port)
toolBridge - The tool bridge that requested the starting of this tool connection.host - The adress where the ToolBus is running.port - The port the ToolBus is running on.| Method Detail |
|---|
public void run()
run in interface java.lang.RunnableRunnable.run()public IReadMultiplexer getReadMultiplexer()
AbstractConnectionHandler
getReadMultiplexer in class AbstractConnectionHandlerAbstractConnectionHandler.getReadMultiplexer()public IWriteMultiplexer getWriteMultiplexer()
AbstractConnectionHandler
getWriteMultiplexer in class AbstractConnectionHandlerAbstractConnectionHandler.getWriteMultiplexer()
private void shakeHands(java.nio.channels.SocketChannel socketChannel,
ToolBridge toolBridge)
throws java.io.IOException
socketChannel - The socket channel that we need to use to perform the handshake.toolBridge - The tool bridge that provides access to the tool.
java.io.IOException - Thrown when something goes wrong with the connection during the handshake.
private void writeTermToChannel(aterm.ATerm aTerm,
java.nio.channels.SocketChannel socketChannel,
java.nio.ByteBuffer byteBuffer)
throws java.io.IOException
aTerm - The term to write.socketChannel - The channel to write to.byteBuffer - The buffer to use.
java.io.IOException - Thrown when something goes wrong while writing to the channel.
private aterm.ATerm readTermFromChannel(aterm.pure.PureFactory factory,
java.nio.channels.SocketChannel socketChannel,
java.nio.ByteBuffer byteBuffer)
throws java.io.IOException
factory - The factory to use for parsing the term.socketChannel - The channel to read from.byteBuffer - The buffer to use.
java.io.IOException - Thrown when something goes wrong while reading the term from the channel.public void closeConnection(java.nio.channels.SocketChannel socketChannel)
AbstractConnectionHandler
closeConnection in class AbstractConnectionHandlersocketChannel - The socket channel, who's associated socket should be closed.AbstractConnectionHandler.closeConnection(SocketChannel)
|
The Meta-Environment API | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||