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.

173 lines
5.6 KiB

  1. //***************************************************************************
  2. //
  3. // File:
  4. //
  5. // Module: MS SNMP Provider
  6. //
  7. // Purpose:
  8. //
  9. // Copyright (c) 1997-2001 Microsoft Corporation, All Rights Reserved
  10. //
  11. //***************************************************************************
  12. class SnmpClassEventObject ;
  13. class SnmpCorrelation : public CCorrelator
  14. {
  15. private:
  16. protected:
  17. SnmpSession *m_session ;
  18. SnmpClassEventObject *m_eventObject ;
  19. public:
  20. #ifdef CORRELATOR_INIT
  21. SnmpCorrelation ( SnmpSession &session , SnmpClassEventObject *eventObject ) ;
  22. #else //CORRELATOR_INIT
  23. SnmpCorrelation ( SnmpSession &session , SnmpClassEventObject *eventObject , ISmirInterrogator *a_ISmirInterrogator ) ;
  24. #endif //CORRELATOR_INIT
  25. ~SnmpCorrelation () ;
  26. void Correlated ( IN const CCorrelator_Info &info , IN ISmirGroupHandle *phModule , IN const char* objectId = NULL ) ;
  27. void Finished ( IN const BOOL Complete ) ;
  28. } ;
  29. class SnmpClassEventObject : public SnmpTaskObject
  30. {
  31. private:
  32. protected:
  33. BOOL m_inCallstack ;
  34. BOOL m_correlate ;
  35. BOOL m_synchronousComplete ;
  36. ULONG m_GroupsReceived ;
  37. WbemSnmpErrorObject m_errorObject ;
  38. CImpClasProv *m_provider ;
  39. IWbemClassObject *m_namespaceObject ;
  40. SnmpCorrelation *m_correlator ;
  41. IWbemContext *m_Context ;
  42. ISmirInterrogator *m_Interrogator ;
  43. BOOL GetAgentTransport ( WbemSnmpErrorObject &a_errorObject , IWbemQualifierSet *classQualifierObject , wchar_t *&agentTransport ) ;
  44. BOOL GetAgentVersion ( WbemSnmpErrorObject &a_errorObject , IWbemQualifierSet *classQualifierObject , wchar_t *&agentVersion ) ;
  45. BOOL GetAgentAddress ( WbemSnmpErrorObject &a_errorObject , IWbemQualifierSet *classQualifierObject , wchar_t *&agentAddress ) ;
  46. BOOL GetAgentReadCommunityName ( WbemSnmpErrorObject &a_errorObject , IWbemQualifierSet *classQualifierObject , wchar_t *&agentReadCommunityName ) ;
  47. BOOL GetAgentRetryCount ( WbemSnmpErrorObject &a_errorObject , IWbemQualifierSet *classQualifierObject , ULONG &agentRetryCount ) ;
  48. BOOL GetAgentRetryTimeout( WbemSnmpErrorObject &a_errorObject , IWbemQualifierSet *classQualifierObject , ULONG &agentRetryTimeout ) ;
  49. BOOL GetAgentMaxVarBindsPerPdu ( WbemSnmpErrorObject &a_errorObject , IWbemQualifierSet *classQualifierObject , ULONG &agentVarBindsPerPdu ) ;
  50. BOOL GetAgentFlowControlWindowSize ( WbemSnmpErrorObject &a_errorObject , IWbemQualifierSet *classQualifierObject , ULONG &agentFlowControlWindowSize ) ;
  51. BOOL GetNamespaceObject ( WbemSnmpErrorObject &a_errorObject ) ;
  52. BOOL GetTransportInformation ( WbemSnmpErrorObject &a_errorObject , SnmpSession *&session ) ;
  53. BOOL GetClass ( WbemSnmpErrorObject &a_errorObject , IWbemClassObject **classObject , BSTR a_Class ) ;
  54. virtual BOOL GetNotifyStatusObject ( IWbemClassObject **notifyObject ) ;
  55. virtual BOOL GetSnmpNotifyStatusObject ( IWbemClassObject **notifyObject ) ;
  56. public:
  57. SnmpClassEventObject ( CImpClasProv *provider , IWbemContext *a_Context ) ;
  58. ~SnmpClassEventObject () ;
  59. WbemSnmpErrorObject &GetErrorObject () { return m_errorObject ; }
  60. virtual void ReceiveGroup ( IN ISmirGroupHandle *phGroup ) = 0 ;
  61. virtual void ReceiveClass ( IN IWbemClassObject *classObject ) = 0 ;
  62. virtual void ReceiveError ( IN const SnmpErrorReport &errorReport ) = 0 ;
  63. virtual void ReceiveComplete () = 0 ;
  64. } ;
  65. class SnmpClassGetEventObject : public SnmpClassEventObject
  66. {
  67. private:
  68. protected:
  69. BOOL m_Received ;
  70. wchar_t *m_Class ;
  71. IWbemClassObject *m_classObject ;
  72. BOOL GetSnmpNotifyStatusObject ( IWbemClassObject **notifyObject ) ;
  73. public:
  74. SnmpClassGetEventObject ( CImpClasProv *provider , BSTR Class , IWbemContext *a_Context ) ;
  75. ~SnmpClassGetEventObject () ;
  76. void ReceiveGroup ( IN ISmirGroupHandle *phGroup ) ;
  77. BOOL ProcessClass ( WbemSnmpErrorObject &a_errorObject ) ;
  78. BOOL ProcessCorrelatedClass ( WbemSnmpErrorObject &a_errorObject ) ;
  79. IWbemClassObject *GetClassObject () { m_classObject->AddRef () ; return m_classObject ; }
  80. } ;
  81. class SnmpClassGetAsyncEventObject : public SnmpClassGetEventObject
  82. {
  83. private:
  84. IWbemObjectSink *m_notificationHandler ;
  85. protected:
  86. public:
  87. SnmpClassGetAsyncEventObject ( CImpClasProv *provider , BSTR Class , IWbemObjectSink *notify , IWbemContext *a_Context ) ;
  88. ~SnmpClassGetAsyncEventObject () ;
  89. void Process () ;
  90. void ReceiveComplete () ;
  91. void ReceiveClass ( IWbemClassObject *classObject ) ;
  92. void ReceiveError ( IN const SnmpErrorReport &errorReport ) ;
  93. } ;
  94. class SnmpClassEnumEventObject : public SnmpClassEventObject
  95. {
  96. private:
  97. protected:
  98. wchar_t *m_Parent ;
  99. ULONG m_Flags ;
  100. BOOL ProcessClass ( WbemSnmpErrorObject &a_errorObject , BSTR a_Class ) ;
  101. BOOL GetEnumeration ( WbemSnmpErrorObject &a_errorObject ) ;
  102. BOOL GetNotificationEnumeration ( WbemSnmpErrorObject &a_errorObject ) ;
  103. BOOL GetExtendedNotificationEnumeration ( WbemSnmpErrorObject &a_errorObject ) ;
  104. public:
  105. SnmpClassEnumEventObject ( CImpClasProv *provider , wchar_t *Parent , ULONG flags , IWbemContext *a_Context ) ;
  106. ~SnmpClassEnumEventObject () ;
  107. void ReceiveGroup ( IN ISmirGroupHandle *phGroup ) ;
  108. BOOL ProcessEnumeration ( WbemSnmpErrorObject &a_errorObject ) ;
  109. } ;
  110. class SnmpClassEnumAsyncEventObject : public SnmpClassEnumEventObject
  111. {
  112. private:
  113. IWbemObjectSink *m_notificationHandler ;
  114. protected:
  115. public:
  116. SnmpClassEnumAsyncEventObject ( CImpClasProv *provider , wchar_t *Parent , ULONG flags , IWbemObjectSink *notify , IWbemContext *a_Context ) ;
  117. ~SnmpClassEnumAsyncEventObject () ;
  118. void Process () ;
  119. void ReceiveClass ( IWbemClassObject *classObject ) ;
  120. void ReceiveError ( IN const SnmpErrorReport &errorReport ) ;
  121. void ReceiveComplete () ;
  122. } ;