public final class SnmpTrapSession
extends java.lang.Object
The trap session is used to send and receives SNMPv1 & v2 trap messages. The messages are received on the configured port, or the default(162) port and then decoded using the set ASN.1 codec. When messages are sent they are encoded using the passed SnmpParameters object that is part of the SnmpPeer object.
A trap message handler must be bound to the session in order to send or receive messages.
SnmpTrapHandler
Modifier and Type | Class and Description |
---|---|
private class |
SnmpTrapSession.TrapHandler
The internal trap handler class is designed to
receive information from the enclosed SnmpPortal
class.
|
Modifier and Type | Field and Description |
---|---|
static int |
DEFAULT_PORT
This is the default port where traps should be sent
and received as defined by the RFC.
|
static int |
ERROR_EXCEPTION
Defines a error due to a thown exception.
|
static int |
ERROR_INVALID_PDU
Defines an error condition with an invalid
PDU.
|
private AsnEncoder |
m_encoder
ASN.1 codec used to encode/decode snmp
traps that are sent and received by this
session.
|
private SnmpTrapHandler |
m_handler
The public trap handler that process
received traps.
|
private int |
m_port
The default port were traps are sent and
received by this session.
|
private SnmpPortal |
m_portal
The default SNMP trap callback handler.
|
private boolean |
m_threadException
If this boolean value is set then the receiver
thread is terminated due to an exception that
was generated in either a handler or a socket
error.
|
private java.lang.Throwable |
m_why
This is the saved fatal exception that
can be rethrown by the application
|
Modifier | Constructor and Description |
---|---|
private |
SnmpTrapSession()
Used to disallow the default constructor.
|
|
SnmpTrapSession(SnmpTrapHandler handler)
The default SnmpTrapSession constructor.
|
|
SnmpTrapSession(SnmpTrapHandler handler,
int port)
SnmpTrapSession constructor
|
|
SnmpTrapSession(SnmpTrapHandler handler,
int port,
java.net.InetAddress laddr)
SnmpTrapSession constructor
|
Modifier and Type | Method and Description |
---|---|
void |
close()
Used to close the session.
|
AsnEncoder |
getAsnEncoder()
Gets the AsnEncoder for the session.
|
SnmpTrapHandler |
getHandler()
Returns the trap handler for this trap session.
|
boolean |
isClosed()
Returns true if the
close method has
been called. |
void |
raise()
If an exception occurs in the SNMP receiver
thread then raise() will rethrow the exception.
|
void |
send(SnmpPeer peer,
SnmpPduPacket pdu)
Transmits the specified SnmpRequest to the SnmpPeer defined.
|
void |
send(SnmpPeer peer,
SnmpPduTrap trap)
Transmits the specified SnmpPduTrap to the SnmpPeer defined
The SnmpPduTrap is encoded using the peer AsnEncoder, as
defined by the SnmpParameters.
|
void |
setAsnEncoder(AsnEncoder encoder)
Sets the default encoder.
|
void |
setHandler(SnmpTrapHandler hdl)
Sets the trap handler for the session.
|
public static final int ERROR_EXCEPTION
Defines a error due to a thown exception. When the snmpTrapSessionError method is invoked in the trap handler, the exception object is passed as the ref parameter.
public static final int ERROR_INVALID_PDU
Defines an error condition with an invalid PDU. For the moment this is not actually used, but reserved for future use. When the session trap handler error method is invoke the pdu in error should be passed as the ref parameters
public static final int DEFAULT_PORT
private int m_port
private SnmpPortal m_portal
private AsnEncoder m_encoder
private SnmpTrapHandler m_handler
private boolean m_threadException
private java.lang.Throwable m_why
private SnmpTrapSession() throws java.lang.UnsupportedOperationException
java.lang.UnsupportedOperationException
- Thrown if the
constructor is called.public SnmpTrapSession(SnmpTrapHandler handler) throws java.net.SocketException
handler
- The handler associated for message processing.java.net.SocketException
- If thrown it is from the creation
of a DatagramSocket.java.lang.SecurityException
- Thrown if the security manager
disallows the creation of the handler.public SnmpTrapSession(SnmpTrapHandler handler, int port) throws java.net.SocketException
handler
- The handler associated for message processing.port
- The port to send and receive datagram from.laddr
- The local address to bind.java.net.SocketException
- If thrown it is from the creation
of a DatagramSocket.public SnmpTrapSession(SnmpTrapHandler handler, int port, java.net.InetAddress laddr) throws java.net.SocketException
handler
- The handler associated for message processing.port
- The port to send and receive datagram from.laddr
- The local address to bind.java.net.SocketException
- If thrown it is from the creation
of a DatagramSocket.public SnmpTrapHandler getHandler()
public void setHandler(SnmpTrapHandler hdl)
hdl
- The new packet handlerpublic void setAsnEncoder(AsnEncoder encoder)
encoder
- The new encoderpublic AsnEncoder getAsnEncoder()
public boolean isClosed()
close
method has
been called. The session cannot be used to send
request after close
has been executed.public void close()
java.lang.IllegalStateException
- Thrown if the session was already closed.public void raise() throws java.lang.Throwable
java.lang.Throwable
- The base for thrown
exceptions.public void send(SnmpPeer peer, SnmpPduTrap trap) throws SnmpPduEncodingException, AsnEncodingException, java.io.IOException
peer
- The remote peer to send to.trap
- The SnmpPduTrap to transmitSnmpPduEncodingException
- Thrown if an encoding exception
occurs at the session levelAsnEncodingException
- Thrown
if an encoding exception occurs in the AsnEncoder object.java.io.IOException
- Thrown if an error occurs sending the
encoded datagramjava.lang.IllegalStateException
- Thrown if the session has been closed.SnmpRequest
,
SnmpParameters
,
SnmpPeer
public void send(SnmpPeer peer, SnmpPduPacket pdu) throws SnmpPduEncodingException, AsnEncodingException, java.io.IOException
peer
- The remote peer to send to.pdu
- The pdu to transmitSnmpPduEncodingException
- Thrown if an encoding exception
occurs at the session levelAsnEncodingException
- Thrown
if an encoding exception occurs in the AsnEncoder object.java.io.IOException
- Thrown if an error occurs sending the
encoded datagramjava.lang.IllegalStateException
- Thrown if the session has been closed.SnmpRequest
,
SnmpParameters
,
SnmpPeer
Generated by iurt on 2015.