|
|
//***************************************************************************
//
// File:
//
// Module: MS SNMP Provider
//
// Purpose:
//
// Copyright (c) 1997-2001 Microsoft Corporation, All Rights Reserved
//
//***************************************************************************
class SnmpClassEventObject ; class SnmpCorrelation : public CCorrelator { private: protected:
SnmpSession *m_session ; SnmpClassEventObject *m_eventObject ;
public:
#ifdef CORRELATOR_INIT
SnmpCorrelation ( SnmpSession &session , SnmpClassEventObject *eventObject ) ; #else //CORRELATOR_INIT
SnmpCorrelation ( SnmpSession &session , SnmpClassEventObject *eventObject , ISmirInterrogator *a_ISmirInterrogator ) ; #endif //CORRELATOR_INIT
~SnmpCorrelation () ;
void Correlated ( IN const CCorrelator_Info &info , IN ISmirGroupHandle *phModule , IN const char* objectId = NULL ) ; void Finished ( IN const BOOL Complete ) ; } ;
class SnmpClassEventObject : public SnmpTaskObject { private: protected:
BOOL m_inCallstack ; BOOL m_correlate ; BOOL m_synchronousComplete ; ULONG m_GroupsReceived ; WbemSnmpErrorObject m_errorObject ; CImpClasProv *m_provider ; IWbemClassObject *m_namespaceObject ; SnmpCorrelation *m_correlator ; IWbemContext *m_Context ; ISmirInterrogator *m_Interrogator ;
BOOL GetAgentTransport ( WbemSnmpErrorObject &a_errorObject , IWbemQualifierSet *classQualifierObject , wchar_t *&agentTransport ) ; BOOL GetAgentVersion ( WbemSnmpErrorObject &a_errorObject , IWbemQualifierSet *classQualifierObject , wchar_t *&agentVersion ) ; BOOL GetAgentAddress ( WbemSnmpErrorObject &a_errorObject , IWbemQualifierSet *classQualifierObject , wchar_t *&agentAddress ) ; BOOL GetAgentReadCommunityName ( WbemSnmpErrorObject &a_errorObject , IWbemQualifierSet *classQualifierObject , wchar_t *&agentReadCommunityName ) ; BOOL GetAgentRetryCount ( WbemSnmpErrorObject &a_errorObject , IWbemQualifierSet *classQualifierObject , ULONG &agentRetryCount ) ; BOOL GetAgentRetryTimeout( WbemSnmpErrorObject &a_errorObject , IWbemQualifierSet *classQualifierObject , ULONG &agentRetryTimeout ) ; BOOL GetAgentMaxVarBindsPerPdu ( WbemSnmpErrorObject &a_errorObject , IWbemQualifierSet *classQualifierObject , ULONG &agentVarBindsPerPdu ) ; BOOL GetAgentFlowControlWindowSize ( WbemSnmpErrorObject &a_errorObject , IWbemQualifierSet *classQualifierObject , ULONG &agentFlowControlWindowSize ) ; BOOL GetNamespaceObject ( WbemSnmpErrorObject &a_errorObject ) ; BOOL GetTransportInformation ( WbemSnmpErrorObject &a_errorObject , SnmpSession *&session ) ;
BOOL GetClass ( WbemSnmpErrorObject &a_errorObject , IWbemClassObject **classObject , BSTR a_Class ) ; virtual BOOL GetNotifyStatusObject ( IWbemClassObject **notifyObject ) ; virtual BOOL GetSnmpNotifyStatusObject ( IWbemClassObject **notifyObject ) ;
public:
SnmpClassEventObject ( CImpClasProv *provider , IWbemContext *a_Context ) ; ~SnmpClassEventObject () ;
WbemSnmpErrorObject &GetErrorObject () { return m_errorObject ; }
virtual void ReceiveGroup ( IN ISmirGroupHandle *phGroup ) = 0 ; virtual void ReceiveClass ( IN IWbemClassObject *classObject ) = 0 ; virtual void ReceiveError ( IN const SnmpErrorReport &errorReport ) = 0 ; virtual void ReceiveComplete () = 0 ;
} ;
class SnmpClassGetEventObject : public SnmpClassEventObject { private: protected:
BOOL m_Received ; wchar_t *m_Class ; IWbemClassObject *m_classObject ;
BOOL GetSnmpNotifyStatusObject ( IWbemClassObject **notifyObject ) ;
public:
SnmpClassGetEventObject ( CImpClasProv *provider , BSTR Class , IWbemContext *a_Context ) ; ~SnmpClassGetEventObject () ;
void ReceiveGroup ( IN ISmirGroupHandle *phGroup ) ;
BOOL ProcessClass ( WbemSnmpErrorObject &a_errorObject ) ; BOOL ProcessCorrelatedClass ( WbemSnmpErrorObject &a_errorObject ) ;
IWbemClassObject *GetClassObject () { m_classObject->AddRef () ; return m_classObject ; }
} ;
class SnmpClassGetAsyncEventObject : public SnmpClassGetEventObject { private:
IWbemObjectSink *m_notificationHandler ;
protected: public:
SnmpClassGetAsyncEventObject ( CImpClasProv *provider , BSTR Class , IWbemObjectSink *notify , IWbemContext *a_Context ) ; ~SnmpClassGetAsyncEventObject () ;
void Process () ; void ReceiveComplete () ; void ReceiveClass ( IWbemClassObject *classObject ) ; void ReceiveError ( IN const SnmpErrorReport &errorReport ) ; } ;
class SnmpClassEnumEventObject : public SnmpClassEventObject { private: protected:
wchar_t *m_Parent ; ULONG m_Flags ;
BOOL ProcessClass ( WbemSnmpErrorObject &a_errorObject , BSTR a_Class ) ; BOOL GetEnumeration ( WbemSnmpErrorObject &a_errorObject ) ;
BOOL GetNotificationEnumeration ( WbemSnmpErrorObject &a_errorObject ) ; BOOL GetExtendedNotificationEnumeration ( WbemSnmpErrorObject &a_errorObject ) ;
public:
SnmpClassEnumEventObject ( CImpClasProv *provider , wchar_t *Parent , ULONG flags , IWbemContext *a_Context ) ; ~SnmpClassEnumEventObject () ;
void ReceiveGroup ( IN ISmirGroupHandle *phGroup ) ;
BOOL ProcessEnumeration ( WbemSnmpErrorObject &a_errorObject ) ; } ;
class SnmpClassEnumAsyncEventObject : public SnmpClassEnumEventObject { private:
IWbemObjectSink *m_notificationHandler ;
protected: public:
SnmpClassEnumAsyncEventObject ( CImpClasProv *provider , wchar_t *Parent , ULONG flags , IWbemObjectSink *notify , IWbemContext *a_Context ) ; ~SnmpClassEnumAsyncEventObject () ;
void Process () ; void ReceiveClass ( IWbemClassObject *classObject ) ; void ReceiveError ( IN const SnmpErrorReport &errorReport ) ; void ReceiveComplete () ; } ;
|