OpenNMS API 1.2.3

org.opennms.protocols.snmp
Class SnmpTrapSession

java.lang.Object
  extended byorg.opennms.protocols.snmp.SnmpTrapSession

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.

Version:
1.1.1.1 2001/11/11 17:27:22
Author:
OpenNMS , Brian Weaver , Sowmya
See Also:
SnmpTrapHandler

Nested Class Summary
private  class SnmpTrapSession.TrapHandler
           The internal trap handler class is designed to receive information from the enclosed SnmpPortal class.
 
Field Summary
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
 
Constructor Summary
private SnmpTrapSession()
          Used to disallow the default constructor.
  SnmpTrapSession(SnmpTrapHandler handler)
          The default SnmpTrapSession constructor.
  SnmpTrapSession(SnmpTrapHandler handler, int port)
          The default SnmpTrapSession constructor that takes a packet handler as parameter.
 
Method Summary
 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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ERROR_EXCEPTION

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.

See Also:
SnmpTrapHandler.snmpTrapSessionError(org.opennms.protocols.snmp.SnmpTrapSession, int, java.lang.Object), Constant Field Values

ERROR_INVALID_PDU

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

See Also:
SnmpTrapHandler.snmpTrapSessionError(org.opennms.protocols.snmp.SnmpTrapSession, int, java.lang.Object), Constant Field Values

DEFAULT_PORT

public static final int DEFAULT_PORT
This is the default port where traps should be sent and received as defined by the RFC.

See Also:
Constant Field Values

m_port

private int m_port
The default port were traps are sent and received by this session.


m_portal

private SnmpPortal m_portal
The default SNMP trap callback handler. If this is not set and it is needed then an SnmpHandlerNotDefinedException is thrown.


m_encoder

private AsnEncoder m_encoder
ASN.1 codec used to encode/decode snmp traps that are sent and received by this session.


m_handler

private SnmpTrapHandler m_handler
The public trap handler that process received traps.


m_threadException

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. This is considered a fatal exception.


m_why

private java.lang.Throwable m_why
This is the saved fatal exception that can be rethrown by the application

Constructor Detail

SnmpTrapSession

private SnmpTrapSession()
                 throws java.lang.UnsupportedOperationException
Used to disallow the default constructor.

Throws:
java.lang.UnsupportedOperationException - Thrown if the constructor is called.

SnmpTrapSession

public SnmpTrapSession(SnmpTrapHandler handler)
                throws java.net.SocketException
The default SnmpTrapSession constructor.

Parameters:
handler - The handler associated for message processing.
Throws:
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.

SnmpTrapSession

public SnmpTrapSession(SnmpTrapHandler handler,
                       int port)
                throws java.net.SocketException
The default SnmpTrapSession constructor that takes a packet handler as parameter. Also changes the default port to listen on

Throws:
java.net.SocketException - If thrown it is from the creation of a DatagramSocket.
Method Detail

getHandler

public SnmpTrapHandler getHandler()
Returns the trap handler for this trap session.

Returns:
The SnmpTrapHandler

setHandler

public void setHandler(SnmpTrapHandler hdl)
Sets the trap handler for the session.

Parameters:
hdl - The new packet handler

setAsnEncoder

public void setAsnEncoder(AsnEncoder encoder)
Sets the default encoder.

Parameters:
encoder - The new encoder

getAsnEncoder

public AsnEncoder getAsnEncoder()
Gets the AsnEncoder for the session.

Returns:
the AsnEncoder

isClosed

public boolean isClosed()
Returns true if the close method has been called. The session cannot be used to send request after close has been executed.


close

public void close()
Used to close the session. Once called the session should be considered invalid and unusable.

Throws:
java.lang.IllegalStateException - Thrown if the session was already closed.

raise

public void raise()
           throws java.lang.Throwable
If an exception occurs in the SNMP receiver thread then raise() will rethrow the exception.

Throws:
java.lang.Throwable - The base for thrown exceptions.

send

public void send(SnmpPeer peer,
                 SnmpPduTrap trap)
          throws SnmpPduEncodingException,
                 AsnEncodingException,
                 java.io.IOException
Transmits the specified SnmpPduTrap to the SnmpPeer defined The SnmpPduTrap is encoded using the peer AsnEncoder, as defined by the SnmpParameters. Once the packet is encoded it is transmitted to the agent defined by SnmpPeer. If an error occurs an appropiate exception is generated.

Parameters:
peer - The remote peer to send to.
trap - The SnmpPduTrap to transmit
Throws:
SnmpPduEncodingException - Thrown if an encoding exception occurs at the session level
AsnEncodingException - Thrown if an encoding exception occurs in the AsnEncoder object.
java.io.IOException - Thrown if an error occurs sending the encoded datagram
java.lang.IllegalStateException - Thrown if the session has been closed.
See Also:
SnmpRequest, SnmpParameters, SnmpPeer

send

public void send(SnmpPeer peer,
                 SnmpPduPacket pdu)
          throws SnmpPduEncodingException,
                 AsnEncodingException,
                 java.io.IOException
Transmits the specified SnmpRequest to the SnmpPeer defined. First the SnmpPdu contained within the request is encoded using the peer AsnEncoder, as defined by the SnmpParameters. Once the packet is encoded it is transmitted to the agent defined by SnmpPeer. If an error occurs an appropiate exception is generated.

Parameters:
peer - The remote peer to send to.
pdu - The pdu to transmit
Throws:
SnmpPduEncodingException - Thrown if an encoding exception occurs at the session level
AsnEncodingException - Thrown if an encoding exception occurs in the AsnEncoder object.
java.io.IOException - Thrown if an error occurs sending the encoded datagram
java.lang.IllegalStateException - Thrown if the session has been closed.
See Also:
SnmpRequest, SnmpParameters, SnmpPeer

OpenNMS API 1.2.3

Generated by eevans on May 29 2005 2015.