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.
 
 
 
 
 
 

155 lines
3.4 KiB

// 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