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

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++ S N M P M E S S A G E . H   
  15.       
  16.   SNMPMESSAGE CLASS DEFINITION
  17.        
  18.   VERSION:
  19.   2.8
  20.   
  21.   RCS INFO:
  22.   $Header: Exp $
  23.        
  24.   DESIGN:
  25.   Peter E Mellquist
  26.                 
  27.   AUTHOR:      
  28.   Peter E Mellquist
  29.               
  30.   LANGUAGE:
  31.   ANSI C++ 
  32.       
  33.   OPERATING SYSTEMS:
  34.   Win 32
  35.   BSD UNIX
  36.       
  37.   DESCRIPTION:
  38.   ASN.1 encoding / decoding class
  39.         
  40. =====================================================================*/ 
  41. #ifndef _SNMPMSG
  42. #define _SNMPMSG
  43. #include "snmp_pp.h"                        // SNMP++ header file
  44. #include "asn1.h"                          // asn.1 header file
  45. // SnmpMessage Class
  46. class DLLOPT SnmpMessage {
  47. public:
  48. // construct a SnmpMessage object
  49. SnmpMessage( void)
  50.    { bufflen=SNMP_MSG_LENGTH; valid_flag=FALSE; };
  51. // load up using a Pdu, community and SNMP version
  52. // performs ASN.1 serialization
  53. // result status returned
  54. int load( Pdu pdu,                      // Pdu to serialize
  55.       OctetStr community,           // community name to use
  56.   snmp_version version);        // SNMP version, v1 or v2
  57. // load up message using ASN.1 data stream
  58. // status is returned
  59. int load( unsigned char *data,         // data to be loaded  
  60.       unsigned long len);    // len of data to be loaded
  61. // unload ( unserialize ) into SNMP++ Pdu, community and version
  62. // status is returned
  63. int unload( Pdu &pdu,                  // Pdu returned
  64.         OctetStr &community,       // community name
  65. snmp_version &version);    // version
  66. // return the validity of the message
  67. // returns Boolean
  68. int valid() 
  69.    { return valid_flag;};
  70. // return raw data
  71. // check validity
  72. unsigned char *data() 
  73.    { return databuff; };
  74. // returns len
  75. // check validity
  76. unsigned long len() 
  77.    { return bufflen; };
  78. protected:
  79. unsigned char databuff[SNMP_MSG_LENGTH];
  80. unsigned long bufflen;
  81. int valid_flag;
  82. };
  83. #endif  // _SNMPMSG