/*
* Copyright (c) 2003, Intracom S.A. - www.intracom.com
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* This package and its source code is available at www.jboss.org
**/
package org.jboss.jmx.adaptor.snmp.agent;
import javax.management.Notification;
import org.opennms.protocols.snmp.SnmpPduPacket;
import org.opennms.protocols.snmp.SnmpPduTrap;
/**
* <tt>TrapFactory </tt> takes care of translation of Notifications into
* SNMP V1 and V2 traps
*
* Trap-PDU ::=
* [4]
* IMPLICIT SEQUENCE {
* enterprise -- type of object generating
* -- trap, see sysObjectID in [5]
* OBJECT IDENTIFIER,
* agent-addr -- address of object generating
* NetworkAddress, -- trap
* generic-trap -- generic trap type
* INTEGER {
* coldStart(0),
* warmStart(1),
* linkDown(2),
* linkUp(3),
* authenticationFailure(4),
* egpNeighborLoss(5),
* enterpriseSpecific(6)
* },
* specific-trap -- specific code, present even
* INTEGER, -- if generic-trap is not
* -- enterpriseSpecific
* time-stamp -- time elapsed between the last
* TimeTicks, -- (re)initialization of the network
* -- entity and the generation of the
* trap
* variable-bindings -- "interesting" information
* VarBindList
* }
*
* @version $Revision: 44604 $
*
* @author <a href="mailto:spol@intracom.gr">Spyros Pollatos</a>
* @author <a href="mailto:dimitris@jboss.org">Dimitris Andreadis</a>
**/
public interface TrapFactory
{
/**
* Sets the name of the file containing the notification/trap mappings,
* the uptime clock and the trap counter
**/
public void set(String notificationMapResName, Clock uptime, Counter count);
/**
* Performs all the required initialisation in order for the mapper to
* commence operation (e.g. reading of the resource file)
**/
public void start()
throws Exception;
/**
* Translates a Notification to an SNMP V2 trap.
*
* @param the notification to be translated
**/
public SnmpPduPacket generateV2Trap(Notification n)
throws MappingFailedException;
/**
* Traslates a Notification to an SNMP V1 trap.
*
* @param the notification to be translated
**/
public SnmpPduTrap generateV1Trap(Notification n)
throws MappingFailedException;
} // TrapFactory