//*************************************************************************** // // File: // // Module: MS SNMP Provider // // Purpose: // // Copyright (c) 1997-2001 Microsoft Corporation, All Rights Reserved // //*************************************************************************** /*-------------------------------------------------- Filename: pdu.hpp Author: B.Rajeev Purpose: Provides declarations for the SnmpPdu class --------------------------------------------------*/ #ifndef __SNMP_PDU__ #define __SNMP_PDU__ // encapsulates an Snmp Pdu. it is represented as an unsigned // character string (non-null terminated) and its length class DllImportExport SnmpPdu { // a pdu is invalid until the string and its length are specified // in the constructor or through SetPdu BOOL is_valid; UCHAR *ptr; ULONG length; RequestId m_RequestId ; SnmpEncodeDecode :: PduType m_PduType ; SnmpErrorReport m_ErrorReport ; SnmpVarBindList *m_SnmpVarBindList ; SnmpTransportAddress *m_SourceAddress ; SnmpTransportAddress *m_DestinationAddress ; SnmpCommunityBasedSecurity *m_SnmpCommunityName ; void Initialize(IN const UCHAR *frame, IN const ULONG &frameLength); void FreeFrame(void); void FreePdu () ; public: SnmpPdu(); SnmpPdu(IN SnmpPdu &snmpPdu); SnmpPdu(IN const UCHAR *frame, IN const ULONG &frameLength); virtual ~SnmpPdu(void) ; ULONG GetFrameLength() const; UCHAR *GetFrame() const; void SetPdu(IN const UCHAR *frame, IN const ULONG frameLength); void SetPdu(IN SnmpPdu &a_SnmpPdu ) ; virtual BOOL SetVarBindList ( OUT SnmpVarBindList &a_SnmpVarBindList ) ; virtual BOOL SetCommunityName ( IN SnmpCommunityBasedSecurity &a_SnmpCommunityBasedSecurity ) ; virtual BOOL SetErrorReport ( OUT SnmpErrorReport &a_SnmpErrorReport ) ; virtual BOOL SetPduType ( OUT SnmpEncodeDecode :: PduType a_PduType ) ; virtual BOOL SetSourceAddress ( IN SnmpTransportAddress &a_TransportAddress ) ; virtual BOOL SetDestinationAddress ( IN SnmpTransportAddress &a_TransportAddress ) ; virtual BOOL SetRequestId ( IN RequestId request_id ) ; virtual SnmpEncodeDecode :: PduType & GetPduType () ; virtual RequestId & GetRequestId () ; virtual SnmpErrorReport &GetErrorReport () ; virtual SnmpCommunityBasedSecurity &GetCommunityName () ; virtual SnmpVarBindList &GetVarbindList () ; virtual SnmpTransportAddress &GetSourceAddress () ; virtual SnmpTransportAddress &GetDestinationAddress () ; void *operator()(void) const { return ( (is_valid)? (void *)this: NULL ); } operator void *() const { return SnmpPdu::operator()(); } }; #endif // __SNMP_PDU__