00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef _agentx_mib_h
00024 #define _agentx_mib_h
00025
00026
00027 #include <agent_pp/mib.h>
00028
00029 #include <agent_pp/snmp_textual_conventions.h>
00030 #include <agent_pp/notification_originator.h>
00031 #include <agentx_pp/agentx_master.h>
00032
00033
00034 #define oidAgentxDefaultTimeout "1.3.6.1.2.1.74.1.1.1.0"
00035 #define oidAgentxMasterAgentXVer "1.3.6.1.2.1.74.1.1.2.0"
00036 #define oidAgentxConnTableLastChange "1.3.6.1.2.1.74.1.2.1.0"
00037 #define oidAgentxConnectionTable "1.3.6.1.2.1.74.1.2.2"
00038 #define oidAgentxConnectionEntry "1.3.6.1.2.1.74.1.2.2.1"
00039 #define oidAgentxConnIndex "1.3.6.1.2.1.74.1.2.2.1.1"
00040 #define colAgentxConnIndex "1"
00041 #define oidAgentxConnOpenTime "1.3.6.1.2.1.74.1.2.2.1.2"
00042 #define colAgentxConnOpenTime "2"
00043 #define oidAgentxConnTransportDomain "1.3.6.1.2.1.74.1.2.2.1.3"
00044 #define colAgentxConnTransportDomain "3"
00045 #define oidAgentxConnTransportAddress "1.3.6.1.2.1.74.1.2.2.1.4"
00046 #define colAgentxConnTransportAddress "4"
00047 #define oidAgentxSessionTableLastChange "1.3.6.1.2.1.74.1.3.1.0"
00048 #define oidAgentxSessionTable "1.3.6.1.2.1.74.1.3.2"
00049 #define oidAgentxSessionEntry "1.3.6.1.2.1.74.1.3.2.1"
00050 #define oidAgentxSessionIndex "1.3.6.1.2.1.74.1.3.2.1.1"
00051 #define colAgentxSessionIndex "1"
00052 #define oidAgentxSessionObjectID "1.3.6.1.2.1.74.1.3.2.1.2"
00053 #define colAgentxSessionObjectID "2"
00054 #define oidAgentxSessionDescr "1.3.6.1.2.1.74.1.3.2.1.3"
00055 #define colAgentxSessionDescr "3"
00056 #define oidAgentxSessionAdminStatus "1.3.6.1.2.1.74.1.3.2.1.4"
00057 #define colAgentxSessionAdminStatus "4"
00058 #define oidAgentxSessionOpenTime "1.3.6.1.2.1.74.1.3.2.1.5"
00059 #define colAgentxSessionOpenTime "5"
00060 #define oidAgentxSessionAgentXVer "1.3.6.1.2.1.74.1.3.2.1.6"
00061 #define colAgentxSessionAgentXVer "6"
00062 #define oidAgentxSessionTimeout "1.3.6.1.2.1.74.1.3.2.1.7"
00063 #define colAgentxSessionTimeout "7"
00064 #define oidAgentxRegistrationTableLastChange "1.3.6.1.2.1.74.1.4.1.0"
00065 #define oidAgentxRegistrationTable "1.3.6.1.2.1.74.1.4.2"
00066 #define oidAgentxRegistrationEntry "1.3.6.1.2.1.74.1.4.2.1"
00067 #define oidAgentxRegIndex "1.3.6.1.2.1.74.1.4.2.1.1"
00068 #define colAgentxRegIndex "1"
00069 #define oidAgentxRegContext "1.3.6.1.2.1.74.1.4.2.1.2"
00070 #define colAgentxRegContext "2"
00071 #define oidAgentxRegStart "1.3.6.1.2.1.74.1.4.2.1.3"
00072 #define colAgentxRegStart "3"
00073 #define oidAgentxRegRangeSubId "1.3.6.1.2.1.74.1.4.2.1.4"
00074 #define colAgentxRegRangeSubId "4"
00075 #define oidAgentxRegUpperBound "1.3.6.1.2.1.74.1.4.2.1.5"
00076 #define colAgentxRegUpperBound "5"
00077 #define oidAgentxRegPriority "1.3.6.1.2.1.74.1.4.2.1.6"
00078 #define colAgentxRegPriority "6"
00079 #define oidAgentxRegTimeout "1.3.6.1.2.1.74.1.4.2.1.7"
00080 #define colAgentxRegTimeout "7"
00081 #define oidAgentxRegInstance "1.3.6.1.2.1.74.1.4.2.1.8"
00082 #define colAgentxRegInstance "8"
00083
00084 #ifdef AGENTPP_NAMESPACE
00085 namespace Agentpp {
00086 #endif
00087
00088
00089
00100 class agentxSessionAdminStatus: public MibLeaf {
00101
00102 public:
00103 agentxSessionAdminStatus(const Oidx&);
00104 virtual ~agentxSessionAdminStatus();
00105
00106 virtual MibEntryPtr clone();
00107 virtual void get_request(Request*, int);
00108 virtual long get_state();
00109 virtual void set_state(long);
00110 virtual int set(const Vbx&);
00111 virtual int prepare_set_request(Request*, int&);
00112 virtual boolean value_ok(const Vbx&);
00113
00114 static void set_writable(boolean);
00115
00116 protected:
00117 static mib_access myaccess;
00118 };
00119
00120
00121
00122
00135 class agentxConnectionEntry: public TimeStampTable {
00136
00137 public:
00138 agentxConnectionEntry(TimeStamp*);
00139 virtual ~agentxConnectionEntry();
00140
00141 static agentxConnectionEntry* instance;
00142
00143 virtual void set_row(MibTableRow*, u_int,
00144 const Oidx&, const NS_SNMP OctetStr&);
00145 virtual u_int add(const Oidx&, const NS_SNMP OctetStr&);
00146 virtual void remove(u_int);
00147
00148 protected:
00149 static u_int next_connection;
00150 };
00151
00152
00165 class agentxSessionEntry: public TimeStampTable {
00166 friend class agentxSessionAdminStatus;
00167 public:
00168 agentxSessionEntry(TimeStamp*);
00169 virtual ~agentxSessionEntry();
00170
00171 static agentxSessionEntry* instance;
00172
00173 virtual void set_row(MibTableRow*, const Oidx&,
00174 const NS_SNMP OctetStr&, int, u_int,
00175 u_char, u_char);
00176 virtual void add(u_int, u_int, const Oidx&, const NS_SNMP OctetStr&,
00177 u_char, u_char);
00178 virtual void remove(u_int, u_int);
00179
00180 void set_master(MasterAgentXMib* m) { master = m; }
00187 void deferred_delete(MibTableRow*);
00188
00189 protected:
00190 MasterAgentXMib* master;
00191
00192 };
00193
00194
00195 #define AX_REG_CID 1
00196 #define AX_REG_SID 2
00197 #define AX_REG_RID 3
00198
00199
00211 class agentxRegistrationEntry: public TimeStampTable {
00212
00213 public:
00214 agentxRegistrationEntry(TimeStamp*);
00215 virtual ~agentxRegistrationEntry();
00216
00217 static agentxRegistrationEntry* instance;
00218
00219 virtual void set_row(MibTableRow* r, const NS_SNMP OctetStr&,
00220 const Oidx&, u_int, u_int, u_int,
00221 u_char, boolean);
00222 virtual u_int add(u_int, u_int, const NS_SNMP OctetStr&,
00223 const Oidx&, u_int, u_int, u_int,
00224 u_char, int);
00225 virtual void remove(u_int, u_int, u_int);
00226 protected:
00227 static u_int next_reg;
00228 };
00229
00230
00231 class AGENTXPP_DECL agentx_mib: public MibGroup
00232 {
00233 public:
00234 agentx_mib();
00235 virtual ~agentx_mib() { }
00236 };
00237
00238 #ifdef AGENTPP_NAMESPACE
00239 }
00240 #endif
00241
00242
00243 #endif
00244
00245