// -*- c-basic-offset: 4; tab-width: 8; indent-tabs-mode: t -*- // Copyright (c) 2001-2009 XORP, Inc. // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License, Version 2, June // 1991 as published by the Free Software Foundation. Redistribution // and/or modification of this program under the terms of any other // version of the GNU General Public License is not permitted. // // This program 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. For more details, // see the GNU General Public License, Version 2, a copy of which can be // found in the XORP LICENSE.gpl file. // // XORP Inc, 2953 Bunker Hill Lane, Suite 204, Santa Clara, CA 95054, USA; // http://xorp.net // $XORP: xorp/mibs/bgp4_mib_1657.hh,v 1.19 2009/01/05 18:31:00 jtc Exp $ #ifndef __MIBS_BGP4_MIB_1657_HH__ #define __MIBS_BGP4_MIB_1657_HH__ #include <queue> #include "libxorp/xorp.h" #include "libxorp/xlog.h" #include "libxipc/xrl_std_router.hh" #include "libxipc/xrl_args.hh" #include "xrl/interfaces/bgp_xif.hh" #include "bgp4_mib_xrl_target.hh" /* dlopen functions */ extern "C" { /** * This is the first and only function that gets called when the SNMP * agent loads the bgp_mib_1657 module. This function is responsible for * instantiating the @ref BgpMib object and for registering the scalars and * tables that are implemented by this MIB. * * @short BGP MIB initialization function called by the SNMP agent */ void init_bgp4_mib_1657 (void); /** * This is the function called by the SNMP agent immediately before unloading * the bgp_mib_1657 module. After this function is called, the shared object * will be unloaded and therefore inaccessible. This function unregisters any * alarms and file descriptors to prevent callbacks to non-accessible * functions. * * @short BGP MIB clean up function called by the SNMP agent before unloading */ void deinit_bgp4_mib_1657 (void); } /** * This is the top level class for the BGP MIB tree. It is a singleton class * that implements an @ref XrlBgpV0p2Client for BGP, and contains an * @ref XrlStdRouter and an @ref XrlBgpMibTarget. * * @short Top level class for the BGP MIB tree * */ class BgpMib : public XrlBgpV0p3Client { public: /** * @return the one and only instance in this class */ static BgpMib& the_instance(); /** * @return the name that will be used to identify this mib in the logfile */ static const char * name() { return XORP_MODULE_NAME; }; ~BgpMib(); private: BgpMib(); XrlStdRouter _xrl_router; XrlBgpMibTarget _xrl_target; const string _name; static BgpMib _bgp_mib; }; #endif /* __MIBS_BGP4_MIB_1657_HH__ */