Module org.snmp4j
Package org.snmp4j.transport
Class AbstractTransportServerThread<A extends Address,S extends AbstractSocketEntry<A>>
java.lang.Object
org.snmp4j.transport.AbstractTransportServerThread<A,S>
- All Implemented Interfaces:
Runnable
,WorkerTask
- Direct Known Subclasses:
DefaultTcpTransportMapping.ServerThread
public abstract class AbstractTransportServerThread<A extends Address,S extends AbstractSocketEntry<A>>
extends Object
implements WorkerTask
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected Throwable
protected LinkedList<S>
protected Selector
protected A
protected ServerSocketChannel
protected boolean
protected AbstractConnectionOrientedTransportMapping<A,S>
-
Constructor Summary
ConstructorsConstructorDescriptionAbstractTransportServerThread(AbstractConnectionOrientedTransportMapping<A,S> transportMapping, A serverAddress)
-
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
protected void
closeChannel(SelectableChannel channel)
protected void
connectChannel(SelectionKey sk, A incomingAddress)
protected void
protected abstract A
createIncomingAddress(Socket socket)
protected abstract S
createSocketEntry(A address, Socket socket, boolean useClientMode, TransportStateReference tmStateReference)
protected void
protected void
void
Interrupts this task.void
join()
Waits until this task has been finished.protected abstract SocketChannel
openSocketChannel(ProtocolFamily family)
protected abstract void
protected abstract boolean
readMessage(SelectionKey sk, SocketChannel readChannel, A incomingAddress, S socketEntry)
abstract S
removeSocketEntry(A incomingAddress)
abstract void
run()
void
sendMessage(A address, byte[] message, TransportStateReference tmStateReference, Map<A,S> sockets)
void
TheWorkerPool
might call this method to hint the activeWorkTask
instance to complete execution as soon as possible.protected A
writeData(SelectionKey sk, A incomingAddress)
protected void
writeMessage(S entry, SocketChannel sc)
-
Field Details
-
transportMapping
protected final AbstractConnectionOrientedTransportMapping<A extends Address,S extends AbstractSocketEntry<A>> transportMapping -
serverAddress
-
stop
protected volatile boolean stop -
selector
-
pending
-
lastError
-
ssc
-
-
Constructor Details
-
AbstractTransportServerThread
public AbstractTransportServerThread(AbstractConnectionOrientedTransportMapping<A,S> transportMapping, A serverAddress) throws IOException- Throws:
IOException
-
-
Method Details
-
connectSocketToSendMessage
-
createSocketEntry
protected abstract S createSocketEntry(A address, Socket socket, boolean useClientMode, TransportStateReference tmStateReference) -
sendMessage
public void sendMessage(A address, byte[] message, TransportStateReference tmStateReference, Map<A,S> sockets) throws IOException- Throws:
IOException
-
getSelector
-
openSocketChannel
- Throws:
IOException
-
run
public abstract void run() -
readMessage
protected abstract boolean readMessage(SelectionKey sk, SocketChannel readChannel, A incomingAddress, S socketEntry) throws IOException- Throws:
IOException
-
doServer
-
fireIncrementCounterSessionClose
protected void fireIncrementCounterSessionClose() -
processQueues
protected abstract void processQueues() -
removeSocketEntry
-
connectChannel
-
writeData
-
createIncomingAddress
-
closeChannel
-
writeMessage
- Throws:
IOException
-
close
public void close() -
terminate
public void terminate()Description copied from interface:WorkerTask
TheWorkerPool
might call this method to hint the activeWorkTask
instance to complete execution as soon as possible.- Specified by:
terminate
in interfaceWorkerTask
-
join
public void join()Description copied from interface:WorkerTask
Waits until this task has been finished.- Specified by:
join
in interfaceWorkerTask
-
interrupt
public void interrupt()Description copied from interface:WorkerTask
Interrupts this task.- Specified by:
interrupt
in interfaceWorkerTask
- See Also:
Thread.interrupt()
-