abstract class SAMHandler extends Object implements Runnable, Handler
| Modifier and Type | Field and Description |
|---|---|
protected Log |
_log |
protected SAMBridge |
bridge |
protected Properties |
i2cpProps
I2CP options configuring the I2CP connection (port, host, numHops, etc)
|
protected SocketChannel |
socket |
protected boolean |
stopHandler |
protected Object |
stopLock |
protected I2PAppThread |
thread |
int |
verMajor |
int |
verMinor |
| Modifier | Constructor and Description |
|---|---|
protected |
SAMHandler(SocketChannel s,
int verMajor,
int verMinor,
Properties i2cpProps,
SAMBridge parent)
SAMHandler constructor (to be called by subclasses)
|
| Modifier and Type | Method and Description |
|---|---|
protected void |
closeClientSocket()
Close the socket connected to the SAM client.
|
protected SocketChannel |
getClientSocket()
Get the channel of the socket connected to the SAM client
|
protected Object |
getWriteLock()
If you're crazy enough to write to the raw socket, grab the write lock
with getWriteLock(), synchronize against it, and write to the getOut()
|
protected abstract void |
handle()
Actually handle the SAM protocol.
|
void |
run()
Register with the bridge, call handle(),
unregister with the bridge.
|
protected boolean |
shouldStop()
Should the handler be stopped?
|
void |
startHandling()
Start handling the SAM connection, detaching an handling thread.
|
void |
stopHandling()
Stop the SAM handler, close the client socket,
unregister with the bridge.
|
String |
toString()
Get a string describing the handler.
|
protected void |
writeBytes(ByteBuffer data)
Write a byte array on the handler's socket.
|
protected boolean |
writeString(String str)
Write a string to the handler's socket.
|
static boolean |
writeString(String str,
SocketChannel out)
Unsynchronized, use with caution
|
protected final Log _log
protected final SAMBridge bridge
protected final Properties i2cpProps
protected final SocketChannel socket
protected boolean stopHandler
protected final Object stopLock
protected I2PAppThread thread
public final int verMajor
public final int verMinor
protected SAMHandler(SocketChannel s, int verMajor, int verMinor, Properties i2cpProps, SAMBridge parent) throws IOException
s - Socket attached to a SAM clientverMajor - SAM major version to manageverMinor - SAM minor version to managei2cpProps - properties to configure the I2CP connection (host, port, etc)IOExceptionprotected final void closeClientSocket()
throws IOException
IOExceptionprotected final SocketChannel getClientSocket()
protected Object getWriteLock()
protected abstract void handle()
public final void run()
protected final boolean shouldStop()
public final void startHandling()
public void stopHandling()
stopHandling in interface Handlerpublic final String toString()
protected final void writeBytes(ByteBuffer data) throws IOException
data - A byte array to be writtenIOExceptionprotected final boolean writeString(String str)
str - A byte array to be writtenpublic static boolean writeString(String str, SocketChannel out)