public class SnmpPortal
extends java.lang.Object
SnmpSession,
SnmpTrapSession,
DatagramSocket| Modifier and Type | Class and Description |
|---|---|
private class |
SnmpPortal.Executor
Defines the inner class, Executor threas, which
will be part of thread pool that is used for
handling the packet
|
private class |
SnmpPortal.Receiver
Defines the inner class that monitors the
datagram socket and receives all the PDU responses.
|
| Modifier and Type | Field and Description |
|---|---|
private boolean |
bSocketSoTimeoutRequired
Set to true if it is necessary to set the socket timeout value via the Socket.setSoTimeout()
method in order to keep from blocking indefinitely on a socket I/O call.
|
static int |
DATAGRAM_SOCKET_BUFFER_SIZE |
static int |
DEFAULT_RECEIVE_BUFFER_SIZE |
static int |
DEFAULT_SEND_BUFFER_SIZE |
static int |
DEFAULT_THREADPOOL_SIZE |
private java.net.DatagramSocket |
m_comm
The datagram socket used to send and receive
SNMP messages.
|
private AsnEncoder |
m_encoder
ASN.1 encoder used to decode the SNMP messages.
|
private SnmpPacketHandler |
m_handler
The packet handler that is used to process
received SNMP packets and invalid datagrams.
|
private boolean |
m_isClosing
When set the portal object's close method has been
invoked.
|
private int |
m_numOfExecutorThreads
the number of executor threads in the thread pool
specified during construction of SnmpPortal
|
private SnmpPortal.Receiver |
m_recvThread
the receiver thread that runs the inner class Receiver.
|
private java.util.Vector |
m_threadPool
The thread pool that holds the executor threads
|
private java.util.LinkedList |
m_usedBuffers
Cache used bufferes
|
static int |
MAXIMUM_THREADPOOL_SIZE |
private static java.lang.String |
PROP_SOCKET_TIMEOUT_PERIOD
Identifies the system property that may be used to specify the number of milliseconds to use for the
socket timeout.
|
private static java.lang.String |
PROP_SOCKET_TIMEOUT_REQUIRED
Identifies the system property that may be used to specify whether or not a timeout value is set
on the SNMP trap socket.
|
private static java.lang.Class |
THREAD_CATEGORY_CLASS |
| Modifier | Constructor and Description |
|---|---|
private |
SnmpPortal()
Private constructor used to disallow the
default constructor.
|
(package private) |
SnmpPortal(SnmpPacketHandler handler,
AsnEncoder encoder,
int port)
The SnmpPortal constructor.
|
(package private) |
SnmpPortal(SnmpPacketHandler handler,
AsnEncoder encoder,
int port,
java.net.InetAddress laddr)
The SnmpPortal constructor.
|
(package private) |
SnmpPortal(SnmpPacketHandler handler,
AsnEncoder encoder,
int port,
java.net.InetAddress laddr,
int numOfThreads) |
(package private) |
SnmpPortal(SnmpPacketHandler handler,
AsnEncoder encoder,
int port,
java.net.InetAddress laddr,
int numOfThreads,
int receiveBufferSize,
int sendBufferSize)
The SnmpPortal constructor.
|
| Modifier and Type | Method and Description |
|---|---|
(package private) void |
cacheBuffer(byte[] buffer) |
(package private) void |
close()
Used to close the session.
|
private static java.lang.Class |
findThreadCategoryClass() |
(package private) AsnEncoder |
getAsnEncoder()
Gets the AsnEncoder for the session.
|
(package private) byte[] |
getBuffer() |
(package private) SnmpPacketHandler |
getPacketHandler()
Gets the default SnmpPacketHandler for the session.
|
private void |
handlePkt(java.net.DatagramPacket pkt)
Recovers a SnmpPduPacket or SnmpPduTrap from the passed datagram
and calls the appropriate method in the handler.
|
(package private) void |
invokeHandlePkt(java.net.DatagramPacket pkt)
Wrapper for invoking the handlePkt method and handling the necessary exceptions.
|
(package private) boolean |
isClosed()
Returns true if this portal has had it's
close
method called. |
(package private) void |
send(SnmpPeer peer,
byte[] buf)
Transmits the passed buffer to the respective peer
agent.
|
(package private) void |
send(SnmpPeer peer,
byte[] buf,
int length)
Transmits the passed buffer to the respective peer
agent.
|
(package private) void |
setAsnEncoder(AsnEncoder encoder)
Sets the default encoder.
|
(package private) void |
setPacketHandler(SnmpPacketHandler hdl)
Sets the default SnmpPacketHandler.
|
public static final int DEFAULT_THREADPOOL_SIZE
public static final int MAXIMUM_THREADPOOL_SIZE
public static final int DEFAULT_RECEIVE_BUFFER_SIZE
public static final int DEFAULT_SEND_BUFFER_SIZE
public static final int DATAGRAM_SOCKET_BUFFER_SIZE
private SnmpPacketHandler m_handler
private java.net.DatagramSocket m_comm
private SnmpPortal.Receiver m_recvThread
private int m_numOfExecutorThreads
private java.util.Vector m_threadPool
private java.util.LinkedList m_usedBuffers
private AsnEncoder m_encoder
private volatile boolean m_isClosing
private boolean bSocketSoTimeoutRequired
private static final java.lang.String PROP_SOCKET_TIMEOUT_REQUIRED
private static final java.lang.String PROP_SOCKET_TIMEOUT_PERIOD
private static final java.lang.Class THREAD_CATEGORY_CLASS
private SnmpPortal()
throws java.lang.UnsupportedOperationException
java.lang.UnsupportedOperationException - Always thrown!SnmpPortal(SnmpPacketHandler handler, AsnEncoder encoder, int port) throws java.net.SocketException
handler - The SNMP packet handler.encoder - The ASN.1 codec object.port - The port to send and receive datagram from.java.net.SocketException - Thrown if an error occurs setting
up the communication channel.java.lang.IllegalArgumentException - Thrown if any of the parameters
are null or invalid.SnmpPortal(SnmpPacketHandler handler, AsnEncoder encoder, int port, java.net.InetAddress laddr) throws java.net.SocketException
handler - The SNMP packet handler.encoder - The ASN.1 codec object.port - The port to send and receive datagram from.laddr - The local address to bind.java.net.SocketException - Thrown if an error occurs setting
up the communication channel.java.lang.IllegalArgumentException - Thrown if any of the parameters
are null or invalid.SnmpPortal(SnmpPacketHandler handler, AsnEncoder encoder, int port, java.net.InetAddress laddr, int numOfThreads) throws java.net.SocketException
java.net.SocketExceptionSnmpPortal(SnmpPacketHandler handler, AsnEncoder encoder, int port, java.net.InetAddress laddr, int numOfThreads, int receiveBufferSize, int sendBufferSize) throws java.net.SocketException
handler - The SNMP packet handler.encoder - The ASN.1 codec object.port - The port to send and receive datagram from.laddr - The local address to bind.numOfThreads - The number of Executor threads in pool.receiveBufferSize - Sets the SO_RCVBUF option to the specified value for this DatagramSocketsendBufferSize - Sets the SO_SNDBUF option to the specified value for this DatagramSocket.java.net.SocketException - Thrown if an error occurs setting
up the communication channel.java.lang.IllegalArgumentException - Thrown if any of the parameters
are null or invalid.private static java.lang.Class findThreadCategoryClass()
void invokeHandlePkt(java.net.DatagramPacket pkt)
pkt - The datagram packet to be decodednonehandlePktbyte[] getBuffer()
void cacheBuffer(byte[] buffer)
private void handlePkt(java.net.DatagramPacket pkt)
throws SnmpPduEncodingException,
AsnDecodingException
pkt - The datagram packet to be decodedSnmpPduEncodingException - Thrown if a pdu or session level error occursAsnDecodingException - Thrown if the AsnEncoder encounters an errorSnmpPduTrap,
SnmpPduPacket,
SnmpPduRequest,
SnmpPduBulk,
SnmpParameters,
AsnEncodervoid send(SnmpPeer peer, byte[] buf, int length) throws java.io.IOException
peer - The SNMP peer destinationbuf - The buffer to transmit.length - The valid length of the bufferjava.lang.IOException - For more details see
java.net.DatagramSocket.java.io.IOExceptionDatagramSocketvoid send(SnmpPeer peer, byte[] buf) throws java.io.IOException
peer - The SNMP peer destinationbuf - The buffer to transmit.java.lang.IOException - For more details see
java.net.DatagramSocket.java.io.IOExceptionDatagramSocketvoid setPacketHandler(SnmpPacketHandler hdl)
hdl - The new handlerSnmpPacketHandler getPacketHandler()
void setAsnEncoder(AsnEncoder encoder)
encoder - The new encoderAsnEncoder getAsnEncoder()
boolean isClosed()
close
method called.void close()
Generated by iurt on 2013.