|
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.SocketConnectionHandler
public class SocketConnectionHandler
This class handles the establishing and closing of all TCP/IP connections.
Field Summary | |
---|---|
private java.nio.ByteBuffer |
handShakeBuffer
|
private static int |
HANDSHAKEBUFFERSIZE
|
private SocketReadMultiplexer |
readMultiplexer
|
private boolean |
running
|
private java.nio.channels.ServerSocketChannel |
serverSocketChannel
|
private ToolBus |
toolbus
|
private SocketWriteMultiplexer |
writeMultiplexer
|
Constructor Summary | |
---|---|
SocketConnectionHandler(ToolBus toolbus)
Constructor. |
Method Summary | |
---|---|
private void |
acceptConnection()
Accepts a connection with a remote application. |
void |
closeConnection(java.nio.channels.SocketChannel socketChannel)
Closes the connection associated with the given socket channel. |
int |
getPort()
Returns the port number the ToolBus is currently running on. |
SocketReadMultiplexer |
getReadMultiplexer()
Returns a reference to the read multiplexer. |
SocketWriteMultiplexer |
getWriteMultiplexer()
Returns a reference to the write multiplexer. |
void |
initialize()
Initializes the connection handler. |
void |
initialize(int port)
Initializes the connection handler on a user specified port. |
boolean |
isRunning()
Checks if this handler is running or not. |
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()
Main loop of this handler. |
private ToolInstance |
shakeHands(java.nio.channels.SocketChannel socketChannel)
|
void |
stopRunning()
Stops the execution of this handler. |
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 ToolBus toolbus
private final SocketReadMultiplexer readMultiplexer
private final SocketWriteMultiplexer writeMultiplexer
private final java.nio.channels.ServerSocketChannel serverSocketChannel
private final java.nio.ByteBuffer handShakeBuffer
private volatile boolean running
Constructor Detail |
---|
public SocketConnectionHandler(ToolBus toolbus)
toolbus
- A reference to the main class of the Toolbus.Method Detail |
---|
public void initialize() throws java.io.IOException
java.io.IOException
public void initialize(int port) throws java.io.IOException
java.io.IOException
public int getPort()
public SocketReadMultiplexer getReadMultiplexer()
AbstractConnectionHandler
getReadMultiplexer
in class AbstractConnectionHandler
AbstractConnectionHandler.getReadMultiplexer()
public SocketWriteMultiplexer getWriteMultiplexer()
AbstractConnectionHandler
getWriteMultiplexer
in class AbstractConnectionHandler
AbstractConnectionHandler.getWriteMultiplexer()
public boolean isRunning()
public void stopRunning()
public void run()
run
in interface java.lang.Runnable
private void acceptConnection() throws java.io.IOException
java.io.IOException
- Thrown when something goes wrong while accepting the connection, registering it
or instantiating the associated I/O handlers.private ToolInstance shakeHands(java.nio.channels.SocketChannel socketChannel) throws java.io.IOException, ToolBusException
java.io.IOException
ToolBusException
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 AbstractConnectionHandler
socketChannel
- 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 |