diff options
Diffstat (limited to 'ASNMP/asnmp/vb.h')
-rw-r--r-- | ASNMP/asnmp/vb.h | 199 |
1 files changed, 199 insertions, 0 deletions
diff --git a/ASNMP/asnmp/vb.h b/ASNMP/asnmp/vb.h new file mode 100644 index 00000000000..2aa5150c84c --- /dev/null +++ b/ASNMP/asnmp/vb.h @@ -0,0 +1,199 @@ +/* -*-C++-*- */ +#ifndef VB_CLS_ +#define VB_CLS_ +// ============================================================================ +// +// = LIBRARY +// asnmp +// +// = FILENAME +// vb.h +// +// = DESCRIPTION +// This module contains the class definition for the variable binding (VB) +// class. The VB class is an encapsulation of a SNMP VB. A VB object is +// composed of one SNMP++ Oid and one SMI value. The Vb class utilizes Oid +// objects and thus requires the Oid class. To use this class, +// set oid, value then call valid() to be sure object was constructed correctly. +// +// = AUTHOR +// Peter E Mellquist +// ============================================================================ +/*=================================================================== + Copyright (c) 1996 + Hewlett-Packard Company + + ATTENTION: USE OF THIS SOFTWARE IS SUBJECT TO THE FOLLOWING TERMS. + Permission to use, copy, modify, distribute and/or sell this software + and/or its documentation is hereby granted without fee. User agrees + to display the above copyright notice and this license notice in all + copies of the software and any documentation of the software. User + agrees to assume all liability for the use of the software; Hewlett-Packard + makes no representations about the suitability of this software for any + purpose. It is provided "AS-IS without warranty of any kind,either express + or implied. User hereby grants a royalty-free license to any and all + derivatives based upon this software code base. +=====================================================================*/ + +//----[ external calls ]---------------------------------------------- +#include "ace/OS.h" + +#include "asnmp/smival.h" +#include "asnmp/snmperrs.h" // V2c error def +#include "asnmp/oid.h" // oid class def +#include "asnmp/timetick.h" // time ticks +#include "asnmp/counter.h" // counter +#include "asnmp/gauge.h" // gauge class +#include "asnmp/ctr64.h" // 64 bit counters +#include "asnmp/octet.h" // octet class +#include "asnmp/address.h" // address class def +#include "asnmp/integer.h" // integer class + + +//------------[ VB Class Def ]------------------------------------- +// The Vb class is the encapsulation of the SNMP variable binding. +// Variable binding lists in SNMP++ are represented as arrays of +// Vb objects. Vb objects are passed to and from SNMP objects to +// provide getting or setting MIB values. +// The vb class keeps its own memory for objects and does not +// utilize pointers to external data structures. +// +class ACE_Export Vb + // = TITLE + // Implement the concrete Variable Bindings aka Varbind + // composite type. Varbinds hold 1 Oid and 1 Value (Any SMI value) +{ +public: + Vb( void); + // constructor with no arguments + // makes an vb, unitialized (does not make object valid) + + Vb( const Oid &oid); + // constructor to initialize the oid + // makes a vb with oid portion initialized (does not make object valid) + + Vb( const Oid& vb, const SnmpSyntax &val, const SmiUINT32=SNMP_CLASS_SUCCESS); + // constructor to initialize the oid + // makes a vb with oid portion and value portion initialized, (valid) + + Vb( const Vb &vb); + // copy constructor + + ~Vb(); + // destructor + // if the vb has a oid or an octect string then + // the associated memory needs to be freed + + int valid() const; + // return validity of Vb object (both oid and value set return 1 else 0) + + Vb& operator=( const Vb &vb); + // assignment to another Vb object overloaded + + friend int operator==( const Vb &lhs, const Vb &rhs); + // equivlence operator overloaded + + //-----[ set oid / get oid part]------------------------------------------ + + void set_oid( const Oid& oid); + // set value oid only with another oid + + void get_oid( Oid &oid) const; + // get oid portion + + //-----[ set value part]-------------------------------------------------- + + void set_null(); + // set a Vb null, if its not already + + void set_value( const TimeTicks& ticks); + // returns 0 on success and a value + + void set_value( const Oid& oid); + // returns 0 on success and a value + + void set_value( const Counter32& ctr); + // returns 0 on success and a value + + void set_value( const Counter64& ctr); + // returns 0 on success and a value + + void set_value( const Gauge32& ctr); + // returns 0 on success and a value + + void set_value( const SnmpUInt32& ctr); + // returns 0 on success and a value + + void set_value( const SnmpInt32& ctr); + // returns 0 on success and a value + + void set_value( const OctetStr& oct_str); + // get an octet string object + + //----[ get value ]------------------------------------------------ + + int get_value( TimeTicks& ticks); + // returns 0 on success and a value + + int get_value( Oid& oid); + // returns 0 on success and a value + + int get_value( Counter32& ctr); + // returns 0 on success and a value + + int get_value( Counter64& ctr); + // returns 0 on success and a value + + int get_value( Gauge32& ctr); + // returns 0 on success and a value + + int get_value( SnmpUInt32& ctr); + // returns 0 on success and a value + + int get_value( SnmpInt32& ctr); + // returns 0 on success and a value + + int get_value( OctetStr& oct_str); + // get an octet string object + + // escape hatch + void set_value( const SnmpSyntax &val); + // for other derived types that can be casted + + int get_value( SnmpSyntax &val); + // gets a general value + + SmiUINT32 get_syntax(); + // return the current syntax + // Or.. if a V2 VB exception is present then return the exception value + + friend void set_exception_status( Vb *vb, const SmiUINT32 status); + // set the exception status + + char *to_string(); + // return fomatted version of this object + + char *to_string_value(); + // returns a formatted version of the value + + char *to_string_oid(); + // returns a formatted version of the value + +protected: + char *output_; + // display vb as [ oid / value ] + + Oid iv_vb_oid_; + // a vb is made up of a oid + + SnmpSyntax *iv_vb_value_; + // and a value... + + SmiUINT32 exception_status_; + // are there any vb exceptions?? + + void free_vb(); +}; + +#endif // VB_CLS_ + |