73 lines
2.5 KiB
C++
73 lines
2.5 KiB
C++
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
//
|
|
|
|
// WDMPerf.h
|
|
|
|
//
|
|
|
|
// Copyright (c) 2000-2001 Microsoft Corporation, All Rights Reserved
|
|
//
|
|
/////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef __WBEM_WMI_HIPERF_PROVIDER__H_
|
|
#define __WBEM_WMI_HIPERF_PROVIDER__H_
|
|
|
|
class CWMI_Prov;
|
|
//////////////////////////////////////////////////////////////
|
|
//
|
|
// Constants and globals
|
|
//
|
|
//////////////////////////////////////////////////////////////
|
|
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// CRefresher
|
|
//
|
|
// The refresher maintains an object and an enumerator cache. When an enumerator is added to the refrehser
|
|
// it is added to the enumerator cache, and the index of the array is passed back as a unique ID.
|
|
// The refresher creates a cache of all instances during its initialization. When an object
|
|
// is added to the refresher, a mapping to the object is created between the unique ID and the index of
|
|
// the object in the cache. This allows the objects to be reused and facilitates the management of objects
|
|
// that have been added multiple times.
|
|
//
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
class CRefresher : public IWbemRefresher
|
|
{
|
|
private:
|
|
//===================================================
|
|
// COM reference counter & other stuff...
|
|
//===================================================
|
|
long m_lRef;
|
|
|
|
//===================================================
|
|
// The list of instances for this refresher, which
|
|
// are clones of the provider's master list
|
|
//===================================================
|
|
CHiPerfHandleMap m_HiPerfHandleMap;
|
|
//===================================================
|
|
// The parent provider
|
|
//===================================================
|
|
CWMI_Prov* m_pProvider;
|
|
|
|
public:
|
|
|
|
CRefresher(CWMI_Prov* pProvider);
|
|
virtual ~CRefresher();
|
|
|
|
CHiPerfHandleMap * HiPerfHandleMap() { return &m_HiPerfHandleMap;}
|
|
//===================================================
|
|
// COM methods
|
|
//===================================================
|
|
|
|
STDMETHODIMP QueryInterface(REFIID riid, void** ppv);
|
|
STDMETHODIMP_(ULONG) AddRef();
|
|
STDMETHODIMP_(ULONG) Release();
|
|
|
|
STDMETHODIMP Refresh(/* [in] */ long lFlags);
|
|
};
|
|
|
|
|
|
#endif
|