pdu.h
资源名称:hp_snmp3.zip [点击查看]
上传用户:czjinwang
上传日期:2007-01-12
资源大小:2484k
文件大小:5k
源码类别:
SNMP编程
开发平台:
Visual C++
- /*===================================================================
- 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++ P D U . H
- PDU CLASS DEFINITION
- VERSION:
- 2.8
- RCS INFO:
- $Header: pdu.h,v 1.13 96/06/05 19:10:25 hmgr Exp $
- DESIGN:
- Peter E Mellquist
- AUTHOR:
- Peter E Mellquist
- LANGUAGE:
- ANSI C++
- OPERATING SYSTEMS:
- MS-Windows Win32
- BSD UNIX
- DESCRIPTION:
- Pdu class definition. Encapsulation of an SMI Protocol
- Data Unit (PDU) in C++.
- =====================================================================*/
- #ifndef _PDU_CLS
- #define _PDU_CLS
- #define MAX_VBS 25
- #include "vb.h" // include Vb class definition
- //=======================================================================
- // Pdu Class
- //=======================================================================
- class DLLOPT Pdu {
- //-----------[ public member functions ]---------------------------------
- public:
- // constructor no args
- Pdu( void);
- // constructor with vbs and count
- Pdu( Vb* pvbs, const int pvb_count);
- // constructor with another Pdu instance
- Pdu( const Pdu &pdu);
- // destructor
- ~Pdu();
- // assignment to another Pdu object overloaded
- Pdu& operator=( const Pdu &pdu);
- // append a vb to the pdu
- Pdu& operator+=( Vb &vb);
- // extract all Vbs from Pdu
- int get_vblist( Vb* pvbs, const int pvb_count);
- // deposit all Vbs to Pdu
- int set_vblist( Vb* pvbs, const int pvb_count);
- // get a particular vb
- // where 0 is the first vb
- int get_vb( Vb &vb, const int index) const;
- // set a particular vb
- // where 0 is the first vb
- int set_vb( Vb &vb, const int index);
- // return number of vbs
- int get_vb_count() const;
- // return the error status
- int get_error_status();
- // set the error status
- DLLOPT friend void set_error_status( Pdu *pdu, const int status);
- // return the error index
- int get_error_index();
- // set the error index
- DLLOPT friend void set_error_index( Pdu *pdu, const int index);
- // clear error status
- DLLOPT friend void clear_error_status( Pdu *pdu);
- // clear error index
- DLLOPT friend void clear_error_index( Pdu *pdu);
- // return the request id
- unsigned long get_request_id();
- // set the request id
- DLLOPT friend void set_request_id( Pdu *pdu, const unsigned long rid);
- // get the pdu type
- unsigned short get_type();
- // set the pdu type
- void set_type( unsigned short type);
- // returns validity of Pdu instance
- int valid() const;
- // trim off the last vb, if present
- int trim(const int position=1);
- // delete a Vb anywhere within the Pdu
- int delete_vb( const int position);
- // set notify timestamp
- void set_notify_timestamp( const TimeTicks & timestamp);
- // get notify timestamp
- void get_notify_timestamp( TimeTicks & timestamp);
- // set the notify id
- void set_notify_id( const Oid id);
- // get the notify id
- void get_notify_id( Oid &id);
- // set the notify enterprise
- void set_notify_enterprise( const Oid &enterprise);
- // get the notify enterprise
- void get_notify_enterprise( Oid & enterprise);
- //-------------[ protected instance variables ]--------------------------
- protected:
- Vb *vbs[MAX_VBS]; // pointer to array of Vbs
- int vb_count; // count of Vbs
- int error_status; // SMI error status
- int error_index; // SMI error index
- int validity; // valid boolean
- unsigned long request_id; // SMI request id
- unsigned short pdu_type; // derived at run time based
- // on request type
- // for notify Pdu objects only
- // traps & notifies
- TimeTicks notify_timestamp; // a timestamp associated with an infor
- Oid notify_id; // an id
- Oid notify_enterprise;
- };
- #endif //_PDU_CLS