|
|
/*++
Copyright (C) 1996-2001 Microsoft Corporation
Module Name:
ProvSubS.h
Abstract:
History:
--*/
#ifndef _Server_ProviderRefresherManager_H
#define _Server_ProviderRefresherManager_H
/******************************************************************************
* * Name: * * * Description: * * *****************************************************************************/
#include "ProvCache.h"
/******************************************************************************
* * Name: * * * Description: * * *****************************************************************************/
#define ProxyIndex_RefresherManager_IWbemRefresherMgr 0
#define ProxyIndex_RefresherManager_IWbemShutdown 1
/******************************************************************************
* * Name: * * * Description: * * *****************************************************************************/
class CServerObject_InterceptorProviderRefresherManager : public _IWbemRefresherMgr , public IWbemShutdown , public RefresherManagerCacheElement
{ public: private:
LONG m_ReferenceCount ;
WmiAllocator &m_Allocator ;
ProxyContainer m_ProxyContainer ;
_IWmiProviderHost *m_Host ; _IWbemRefresherMgr *m_Manager ; IWbemShutdown *m_Shutdown ;
LONG m_Initialized ; LONG m_UnInitialized ; HRESULT m_InitializeResult ; HANDLE m_InitializedEvent ; IWbemContext *m_InitializationContext ;
protected:
HRESULT AbnormalShutdown () ;
public:
HRESULT Initialize () ;
HRESULT SetManager ( _IWmiProviderHost *a_Host , _IWbemRefresherMgr *a_Manager ) ;
HRESULT SetInitialized ( HRESULT a_InitializeResult ) ;
HRESULT IsIndependant ( IWbemContext *a_Context ) ;
HRESULT STDMETHODCALLTYPE WaitProvider ( IWbemContext *a_Context , ULONG a_Timeout ) ;
HRESULT STDMETHODCALLTYPE GetInitializeResult () { return m_InitializeResult ; }
public:
CServerObject_InterceptorProviderRefresherManager (
CWbemGlobal_IWbemRefresherMgrController *a_Controller , const ULONG &a_Period , WmiAllocator &a_Allocator , IWbemContext *a_InitializationContext ) ;
~CServerObject_InterceptorProviderRefresherManager () ;
//IUnknown members
STDMETHODIMP QueryInterface ( REFIID , LPVOID FAR * ) ; STDMETHODIMP_( ULONG ) AddRef () ; STDMETHODIMP_( ULONG ) Release () ;
// IWmi_ProviderSubSystem members
// IWmi_Initialize members
HRESULT STDMETHODCALLTYPE Startup (
LONG a_Flags , IWbemContext *a_Context , _IWmiProvSS *a_ProvSS ) ;
// IWmi_UnInitialize members
HRESULT STDMETHODCALLTYPE Shutdown (
LONG a_Flags , ULONG a_MaxMilliSeconds , IWbemContext *a_Context ) ;
HRESULT STDMETHODCALLTYPE AddObjectToRefresher (
IWbemServices *a_Service, LPCWSTR a_ServerName, LPCWSTR a_Namespace, IWbemClassObject* pClassObject, WBEM_REFRESHER_ID *a_DestinationRefresherId, IWbemClassObject *a_InstanceTemplate, long a_Flags, IWbemContext *a_Context, IUnknown* pLockMgr, WBEM_REFRESH_INFO *a_Information ) ;
HRESULT STDMETHODCALLTYPE AddEnumToRefresher (
IWbemServices *a_Service, LPCWSTR a_ServerName, LPCWSTR a_Namespace, IWbemClassObject* pClassObject, WBEM_REFRESHER_ID *a_DestinationRefresherId, IWbemClassObject *a_InstanceTemplate, LPCWSTR a_Class, long a_Flags, IWbemContext *a_Context, IUnknown* pLockMgr, WBEM_REFRESH_INFO *a_Information ) ;
HRESULT STDMETHODCALLTYPE GetRemoteRefresher (
WBEM_REFRESHER_ID *a_RefresherId , long a_Flags, BOOL fAddRefresher, IWbemRemoteRefresher **a_RemoteRefresher , IUnknown* pLockMgr, GUID *a_Guid ) ;
HRESULT STDMETHODCALLTYPE LoadProvider (
IWbemServices *a_Service , LPCWSTR a_ProviderName , LPCWSTR a_Namespace , IWbemContext * a_Context, IWbemHiPerfProvider **a_Provider, _IWmiProviderStack **a_ProvStack ) ; };
/******************************************************************************
* * Name: * * * Description: * * *****************************************************************************/
class CServerObject_ProviderRefresherManager : public _IWbemRefresherMgr , public IWbemShutdown
{ public: private:
LONG m_ReferenceCount ;
WmiAllocator &m_Allocator ;
_IWbemRefresherMgr *m_Manager ; IWbemShutdown *m_Shutdown ;
protected:
public:
CServerObject_ProviderRefresherManager ( WmiAllocator &a_Allocator ) ; ~CServerObject_ProviderRefresherManager () ;
//IUnknown members
STDMETHODIMP QueryInterface ( REFIID , LPVOID FAR * ) ; STDMETHODIMP_( ULONG ) AddRef () ; STDMETHODIMP_( ULONG ) Release () ;
// IWmi_ProviderSubSystem members
// IWmi_Initialize members
HRESULT STDMETHODCALLTYPE Startup (
LONG a_Flags , IWbemContext *a_Context , _IWmiProvSS *a_ProvSS ) ;
// IWmi_UnInitialize members
HRESULT STDMETHODCALLTYPE Shutdown (
LONG a_Flags , ULONG a_MaxMilliSeconds , IWbemContext *a_Context ) ;
HRESULT STDMETHODCALLTYPE AddObjectToRefresher (
IWbemServices *a_Service, LPCWSTR a_ServerName, LPCWSTR a_Namespace, IWbemClassObject* pClassObject, WBEM_REFRESHER_ID *a_DestinationRefresherId, IWbemClassObject *a_InstanceTemplate, long a_Flags, IWbemContext *a_Context, IUnknown* pLockMgr, WBEM_REFRESH_INFO *a_Information ) ;
HRESULT STDMETHODCALLTYPE AddEnumToRefresher (
IWbemServices *a_Service, LPCWSTR a_ServerName, LPCWSTR a_Namespace, IWbemClassObject* pClassObject, WBEM_REFRESHER_ID *a_DestinationRefresherId, IWbemClassObject *a_InstanceTemplate, LPCWSTR a_Class, long a_Flags, IWbemContext *a_Context, IUnknown* pLockMgr, WBEM_REFRESH_INFO *a_Information ) ;
HRESULT STDMETHODCALLTYPE GetRemoteRefresher (
WBEM_REFRESHER_ID *a_RefresherId , long a_Flags, BOOL fAddRefresher, IWbemRemoteRefresher **a_RemoteRefresher , IUnknown* pLockMgr, GUID *a_Guid ) ;
HRESULT STDMETHODCALLTYPE LoadProvider (
IWbemServices *a_Service , LPCWSTR a_ProviderName , LPCWSTR a_Namespace , IWbemContext * a_Context, IWbemHiPerfProvider **a_Provider, _IWmiProviderStack** a_ProvStack ) ; };
#endif // _Server_ProviderRefresherManager_H
|