2025-04-27 07:49:33 -04:00

113 lines
2.7 KiB
C++

// Copyright (c) 1999-2001 Microsoft Corporation, All Rights Reserved
#ifndef __PROPSET_H
#define __PROPSET_H
class SnmpSetClassObject : public SnmpClassObject
{
private:
BOOL m_RowStatusSpecified ;
BOOL m_RowStatusPresent ;
BOOL CheckProperty ( WbemSnmpErrorObject &a_errorObject , WbemSnmpProperty *property ) ;
protected:
public:
SnmpSetClassObject () ;
~SnmpSetClassObject () ;
BOOL Check ( WbemSnmpErrorObject &a_errorObject ) ;
BOOL RowStatusSpecified () { return m_RowStatusSpecified ; }
BOOL RowStatusPresent () { return m_RowStatusPresent ; }
ULONG NumberOfWritable () ;
} ;
class SnmpSetResponseEventObject : public SnmpResponseEventObject
{
private:
protected:
/*
* State variables for event based processing.
*/
ULONG state ;
ULONG m_VarBindsLeftBeforeTooBig ;
BOOL m_SnmpTooBig ;
long m_lflags ;
IWbemClassObject *classObject ;
SnmpSetClassObject snmpObject ;
BOOL processComplete ;
SnmpSession *session ;
SetOperation *operation ;
SetQueryOperation *m_QueryOperation ;
BOOL SendSnmp ( WbemSnmpErrorObject &a_errorObject , const ULONG &a_NumberToSend = 0xffffffff ) ;
public:
SnmpSetResponseEventObject ( CImpPropProv *provider , IWbemClassObject *classObject , IWbemContext *a_Context , long lflags ) ;
~SnmpSetResponseEventObject () ;
SnmpClassObject *GetSnmpClassObject () { return & snmpObject ; }
IWbemClassObject *GetClassObject () { return classObject ; }
} ;
class SnmpUpdateEventObject : public SnmpSetResponseEventObject
{
private:
protected:
BOOL Create_Only () ;
BOOL Update_Only () ;
BOOL Create_Or_Update () ;
BOOL Send_Variable_Binding_List (
SnmpSetClassObject &a_SnmpSetClassObject ,
ULONG a_NumberToSend
) ;
BOOL Send_Variable_Binding_List (
SnmpSetClassObject &a_SnmpSetClassObject ,
ULONG a_NumberToSend ,
SnmpRowStatusType :: SnmpRowStatusEnum a_SnmpRowStatusEnum
) ;
BOOL CheckForRowExistence ( WbemSnmpErrorObject &a_ErrorObject ) ;
BOOL HandleSnmpVersion ( WbemSnmpErrorObject &a_ErrorObject ) ;
BOOL Update ( WbemSnmpErrorObject &a_errorObject ) ;
public:
SnmpUpdateEventObject ( CImpPropProv *provider , IWbemClassObject *classObject , IWbemContext *a_Context , long lflags ) ;
~SnmpUpdateEventObject () ;
} ;
class SnmpUpdateAsyncEventObject : public SnmpUpdateEventObject
{
private:
IWbemObjectSink *notificationHandler ;
protected:
void SetComplete () ;
public:
SnmpUpdateAsyncEventObject ( CImpPropProv *provider , IWbemClassObject *classObject , IWbemObjectSink *notify , IWbemContext *a_Context , long lflags ) ;
~SnmpUpdateAsyncEventObject () ;
void Process () ;
void ReceiveComplete () ;
void SnmpTooBig () ;
} ;
#endif // __PROPSET_H