Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
// Copyright (c) 1997-2001 Microsoft Corporation, All Rights Reserved
#ifndef __SNMPNEXT_H
#define __SNMPNEXT_H
class PropertyDefinition { private: protected: public:
WbemSnmpProperty *m_Property ;
ULONG m_KeyCount ; SnmpObjectIdentifier **m_ObjectIdentifierComponent ; SnmpObjectIdentifier **m_ObjectIdentifierStart ; SnmpObjectIdentifier **m_ObjectIdentifierEnd ; ULONG *m_PartitionIndex ; PartitionSet **m_KeyPartition ;
public:
PropertyDefinition () { m_KeyCount = 0 ; m_Property = NULL ; m_ObjectIdentifierStart = NULL ; m_ObjectIdentifierEnd = NULL ; m_KeyPartition = NULL ; m_PartitionIndex = NULL ; m_ObjectIdentifierComponent = NULL ; }
~PropertyDefinition () { for ( ULONG t_Index = 1 ; t_Index <= m_KeyCount ; t_Index ++ ) { if ( m_ObjectIdentifierStart ) delete m_ObjectIdentifierStart [ t_Index ] ;
if ( m_ObjectIdentifierEnd ) delete m_ObjectIdentifierEnd [ t_Index ] ;
if ( m_ObjectIdentifierComponent ) delete m_ObjectIdentifierComponent [ t_Index ] ; }
delete [] m_ObjectIdentifierStart ; delete [] m_ObjectIdentifierEnd ; delete [] m_ObjectIdentifierComponent ;
delete [] m_KeyPartition ; delete [] m_PartitionIndex ; } } ;
class AutoRetrieveOperation : public SnmpAutoRetrieveOperation { private:
PropertyDefinition *m_PropertyContainer ; ULONG m_PropertyContainerLength ;
BOOL virtuals ; BOOL virtualsInitialised ; ULONG varBindsReceived ; ULONG erroredVarBindsReceived ; ULONG rowsReceived ; ULONG rowVarBindsReceived ;
SnmpSession *session ;
SnmpInstanceResponseEventObject *eventObject ; IWbemClassObject *snmpObject ;
LONG EvaluateInitialVarBind (
ULONG a_PropertyIndex , SnmpObjectIdentifier &a_CurrentIdentifier , SnmpObjectIdentifier &a_StartIdentifier ) ;
LONG EvaluateSubsequentVarBind (
ULONG a_PropertyIndex , IN ULONG &a_CurrentIndex , SnmpObjectIdentifier &a_CurrentIdentifier , SnmpObjectIdentifier &a_StartIdentifier ) ;
LONG EvaluateVarBind (
ULONG a_PropertyIndex , SnmpObjectIdentifier &a_StartIdentifier ) ;
LONG EvaluateResponse (
ULONG a_PropertyIndex , IN ULONG &a_CurrentIndex , SnmpObjectIdentifier &a_AdvanceIdentifier ) ;
protected:
void ReceiveResponse () ;
void ReceiveRowResponse () ;
void ReceiveRowVarBindResponse (
IN const ULONG &var_bind_index, IN const SnmpVarBind &requestVarBind , IN const SnmpVarBind &replyVarBind , IN const SnmpErrorReport &error ) ;
void ReceiveVarBindResponse (
IN const ULONG &var_bind_index, IN const SnmpVarBind &requestVarBind , IN const SnmpVarBind &replyVarBind , IN const SnmpErrorReport &error ) ;
void ReceiveErroredVarBindResponse(
IN const ULONG &var_bind_index, IN const SnmpVarBind &requestVarBind , IN const SnmpErrorReport &error ) ;
LONG EvaluateNextRequest (
IN const ULONG &var_bind_index, IN const SnmpVarBind &requestVarBind , IN const SnmpVarBind &replyVarBind , IN SnmpVarBind &sendVarBind ) ;
void FrameTooBig() ; void FrameOverRun() ;
public:
AutoRetrieveOperation (IN SnmpSession &session, IN SnmpInstanceResponseEventObject *eventObjectArg ) ; ~AutoRetrieveOperation () ;
void Send () ; void DestroyOperation () { SnmpAutoRetrieveOperation :: DestroyOperation () ; } };
#endif // __SNMPNEXT_H
|