octet.h
上传用户:czjinwang
上传日期:2007-01-12
资源大小:2484k
文件大小:5k
源码类别:

SNMP编程

开发平台:

Visual C++

  1. /*===================================================================
  2.   Copyright (c) 1999
  3.   Hewlett-Packard Company
  4.   ATTENTION: USE OF THIS SOFTWARE IS SUBJECT TO THE FOLLOWING TERMS.
  5.   Permission to use, copy, modify, distribute and/or sell this software 
  6.   and/or its documentation is hereby granted without fee. User agrees 
  7.   to display the above copyright notice and this license notice in all 
  8.   copies of the software and any documentation of the software. User 
  9.   agrees to assume all liability for the use of the software; Hewlett-Packard 
  10.   makes no representations about the suitability of this software for any 
  11.   purpose. It is provided "AS-IS without warranty of any kind,either express 
  12.   or implied. User hereby grants a royalty-free license to any and all 
  13.   derivatives based upon this software code base. 
  14.   SNMP++ O C T E T . H
  15.   OCTETSTR CLASS DEFINITION
  16.   VERSION:
  17.   2.8
  18.   RCS INFO:
  19.   $Header: octet.h,v 1.18 96/09/11 14:01:30 hmgr Exp $
  20.   DESIGN:
  21.   Peter E Mellquist
  22.   AUTHOR:
  23.   Peter E Mellquist
  24.   DATE:
  25.   July 07, 1999
  26.   LANGUAGE:
  27.   ANSI C++
  28.   OPERATING SYSTEMS:
  29.   MS-WINDOWS Win32
  30.   BSD UNIX
  31.   DESCRIPTION:
  32.   This class is fully contained and does not rely on or any other
  33.   SNMP libraries. This class is portable across any platform
  34.   which supports C++.
  35. =====================================================================*/
  36. #ifndef _OCTET_CLS
  37. #define _OCTET_CLS
  38. //------------------------------------------------------------------------
  39. //----------[ extern C libraries Needed ]---------------------------------
  40. extern "C"
  41. {
  42. #include <memory.h>   // memcpy's
  43. #include <string.h>   // strlen, etc..
  44. }
  45. #include "smival.h"
  46. //-----------------------------------------------------------------------
  47. //------------[ SNMP++ OCTETSTR CLASS DEF  ]-----------------------------
  48. //-----------------------------------------------------------------------
  49. class DLLOPT OctetStr: public  SnmpSyntax
  50. {
  51. public:
  52.   // constructor using no arguments
  53.   OctetStr( void);
  54.   // constructor using a  string
  55.   OctetStr( const char * string);
  56.   // constructor using an unsigned char *
  57.   OctetStr( const unsigned char * string, unsigned long int size);
  58.   // constructor using another octet object
  59.   OctetStr ( const OctetStr &octet);
  60.   // destructor
  61.   ~OctetStr();
  62.   // syntax type
  63.   SmiUINT32 get_syntax();
  64.   // set the data on an already constructed Octet
  65.   void set_data( const unsigned char * string,
  66.          unsigned long int size);
  67.   // assignment to a string operator overloaded
  68.   OctetStr& operator=( const char *string);
  69.   // assignment to another oid object overloaded
  70.   OctetStr& operator=( const OctetStr &octet);
  71.   // equivlence operator overloaded
  72.   DLLOPT friend int operator==( const OctetStr &lhs, const OctetStr &rhs);
  73.   // not equivlence operator overloaded
  74.   DLLOPT friend int operator!=( const OctetStr &lhs, const OctetStr &rhs);
  75.   // less than < overloaded
  76.   DLLOPT friend int operator<( const OctetStr &lhs, const OctetStr &rhs);
  77.   // less than <= overloaded
  78.   DLLOPT friend int operator<=( const OctetStr &lhs,const OctetStr &rhs);
  79.   // greater than > overloaded
  80.   DLLOPT friend int operator>( const OctetStr &lhs, const OctetStr &rhs);
  81.   // greater than >= overloaded
  82.   DLLOPT friend int operator>=( const OctetStr &lhs, const OctetStr &rhs);
  83.   // equivlence operator overloaded
  84.   DLLOPT friend int operator==( const OctetStr &lhs,const char *rhs);
  85.   // not equivlence operator overloaded
  86.   DLLOPT friend int operator!=( const OctetStr &lhs,const char  *rhs);
  87.   // less than < operator overloaded
  88.   DLLOPT friend int operator<( const OctetStr &lhs,const char  *rhs);
  89.   // less than <= operator overloaded
  90.   DLLOPT friend int operator<=( const OctetStr &lhs,char  *rhs);
  91.   // greater than > operator overloaded
  92.   DLLOPT friend int operator>( const OctetStr &lhs,const char  *rhs);
  93.   // greater than >= operator overloaded
  94.   DLLOPT friend int operator>=( const OctetStr &lhs,const char  *rhs);
  95.   // append operator, appends a string
  96.   OctetStr& operator+=( const char  *a);
  97.   // appends an int
  98.   OctetStr& operator+=( const unsigned char c);
  99.   // append one octetStr to another
  100.   OctetStr& operator+=( const OctetStr& octetstr);
  101.   // for non const [], allows reading and writing
  102.   unsigned char& operator[]( int position);
  103.   // compare n elements of an octet
  104.   int nCompare( const unsigned long n,
  105. const OctetStr &o) const;
  106.   // return the len of the oid
  107.   unsigned long len() const ;
  108.   // returns validity
  109.   int valid() const;
  110.   // returns pointer to internal data
  111.   unsigned char  * data() const;
  112.   // get a printable ASCII value
  113.   char  *get_printable();
  114.   // get an ASCII formattted hex dump of the contents
  115.   char  *get_printable_hex();
  116.   // create a new instance of this Value
  117.   SnmpSyntax  *clone() const; 
  118.   // copy an instance of this Value
  119.   SnmpSyntax& operator=( SnmpSyntax &val);
  120. protected:
  121.   //----[ instance variables ]
  122.   char *output_buffer;    // formatted Octet value
  123.   int validity;        // validity boolean
  124. };
  125. //-----------[ End OctetStr Class ]-------------------------------------
  126. #endif // _OCTET_CLS