|
JoeSNMP API 0.3.3 | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.opennms.protocols.snmp.SnmpPortal
public class SnmpPortal
Abstracts the communication related details from the SnmpSession and SnmpTrapSession.
SnmpSession
,
SnmpTrapSession
,
DatagramSocket
Nested Class Summary | |
---|---|
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. |
Field Summary | |
---|---|
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
|
Constructor Summary | |
---|---|
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. |
Method Summary | |
---|---|
(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. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
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
Constructor Detail |
---|
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.SocketException
SnmpPortal(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.Method Detail |
---|
private static java.lang.Class findThreadCategoryClass()
void invokeHandlePkt(java.net.DatagramPacket pkt)
pkt
- The datagram packet to be decoded
none
handlePkt
byte[] getBuffer()
void cacheBuffer(byte[] buffer)
private void handlePkt(java.net.DatagramPacket pkt) throws SnmpPduEncodingException, AsnDecodingException
pkt
- The datagram packet to be decoded
SnmpPduEncodingException
- Thrown if a pdu or session level error occurs
AsnDecodingException
- Thrown if the AsnEncoder encounters an errorSnmpPduTrap
,
SnmpPduPacket
,
SnmpPduRequest
,
SnmpPduBulk
,
SnmpParameters
,
AsnEncoder
void 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 buffer
java.lang.IOException
- For more details see
java.net.DatagramSocket.
java.io.IOException
DatagramSocket
void 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.IOException
DatagramSocket
void setPacketHandler(SnmpPacketHandler hdl)
hdl
- The new handlerSnmpPacketHandler getPacketHandler()
void setAsnEncoder(AsnEncoder encoder)
encoder
- The new encoderAsnEncoder getAsnEncoder()
boolean isClosed()
close
method called.
void close()
|
JoeSNMP API 0.3.3 | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |