📄 vb.h
字号:
/*===================================================================
Copyright (c) 1999
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.
SNMP++ V B . H
VARIABLE BINDING CLASS DEFINITION
VERSION
2.8
RCS INFO:
$Header: vb.h,v 1.12 96/09/11 14:01:41 hmgr Exp $
DESCRIPTION:
This module contains the class definition for the variable binding
class. The VB class is an encapsulation of a SNMP VB. A VB object is
composed of an SNMP++ Oid and an SMI value. The Vb class utilizes Oid
objects and thus requires the Oid class. The Vb class may be used
stand alone and does not require use of any other snmp library.
DESIGN:
Peter E. Mellquist
AUTHOR:
Peter E Mellquist
LANGAUGE:
ANSI C++
OPERATING SYSTEM:
MS-Windows Win32
BSD UNIX
=====================================================================*/
#ifndef _VB_CLS
#define _VB_CLS
//----[ external C calls ]----------------------------------------------
extern "C"
{
#include <memory.h> // memcpy's
#include <string.h> // strlen, etc..
}
#include "smival.h"
#include "oid.h" // oid class def
#include "timetick.h" // time ticks
#include "counter.h" // counter
#include "gauge.h" // gauge class
#include "ctr64.h" // 64 bit counters
#include "octet.h" // octet class
#include "address.h" // address class def
#include "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 DLLOPT Vb {
//-----[ public members ]
public:
//-----[ constructors / destructors ]-------------------------------
// constructor with no arguments
// makes an vb, unitialized
Vb( void);
// constructor to initialize the oid
// makes a vb with oid portion initialized
Vb( const Oid &oid);
// copy constructor
Vb( const Vb &vb);
// destructor
// if the vb has a oid or an octect string then
// the associated memory needs to be freed
~Vb();
// assignment to another Vb object overloaded
Vb& operator=( const Vb &vb);
//-----[ set oid / get oid ]------------------------------------------
// set value oid only with another oid
void set_oid( const Oid oid);
// get oid portion
void get_oid( Oid &oid) const;
//-----[ set value ]--------------------------------------------------
// sets from a general value
void set_value( const SnmpSyntax &val);
// set the value with an int
// C++ int maps to SMI int
void set_value( const int i);
// set the value with a long signed int
// C++ long int maps to SMI int 32
void set_value( const long int i);
// set the value with an unsigned long int
// C++ unsigned long int maps to SMI UINT32
void set_value( const unsigned long int i);
// set value on a string
// makes the string an octet
// this must be a null terminates string
// maps to SMI octet
void set_value( const char *ptr);
// set a Vb null, if its not already
void set_null();
//----[ get value ]------------------------------------------------
// gets a general value
int get_value( SnmpSyntax &val);
// get value int
// returns 0 on success and value
int get_value( int &i);
// get the signed long int
// returns 0 on success and a value
int get_value( long int &i);
// get the unsigned long int
// returns 0 on success and a value
int get_value( unsigned long int &i);
// get a unsigned char string value
// destructive, copies into given ptr
// also returnd is the len length
//
// Note! the caller must provide a target string big
// enough to handle the vb string
int get_value( unsigned char *ptr, unsigned long &len);
// get an unsigned char array
// caller specifies max len of target space
int get_value( unsigned char *ptr, // pointer to target space
unsigned long &len, // returned len
unsigned long maxlen); // max len of target space
// get a char * from an octet string
// the user must provide space or
// memory will be stepped on
int get_value( char *ptr);
//-----[ misc]--------------------------------------------------------
// return the current syntax
// Or.. if a V2 VB exception is present then return the exception value
SmiUINT32 get_syntax();
// set the exception status
DLLOPT friend void set_exception_status( Vb *vb, const SmiUINT32 status);
// returns a formatted version of the value
char *get_printable_value();
// returns a formatted version of the value
char *get_printable_oid();
// return validity of Vb object
int valid() const;
//-----[ protected members ]
protected:
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??
// free up any mem used
void free_vb();
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -