223 lines
6.3 KiB
C++
223 lines
6.3 KiB
C++
/*
|
|
******************************************************************************
|
|
******************************************************************************
|
|
*
|
|
*
|
|
* INTEL CORPORATION PROPRIETARY INFORMATION
|
|
* This software is supplied under the terms of a license agreement or
|
|
* nondisclosure agreement with Intel Corporation and may not be copied or
|
|
* disclosed except in accordance with the terms of that agreement.
|
|
*
|
|
* Copyright (c) 1997, 1998 Intel Corporation All Rights Reserved
|
|
******************************************************************************
|
|
******************************************************************************
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*/
|
|
|
|
|
|
#if !defined(__MAPPING_H__)
|
|
#define __MAPPING_H__
|
|
|
|
|
|
#include "Iterator.h"
|
|
|
|
#include "ObjectPath.h"
|
|
|
|
#define ITERATOR_COUNT 10
|
|
|
|
class CMapping
|
|
{
|
|
private:
|
|
CIterator* m_Iterators[ITERATOR_COUNT];
|
|
|
|
LONG m_lRefCount;
|
|
BOOL m_bFoundClass;
|
|
|
|
LONG m_lGroupCount;
|
|
|
|
CWbemLoopBack* m_pWbem;
|
|
|
|
void cimMakeGroupBindingClass( CCimObject& , CComponent* ,
|
|
CGroup* , IWbemContext*);
|
|
|
|
void cimMakeGroupClass( long compid , CGroup* ,
|
|
CCimObject& , IWbemContext* );
|
|
|
|
void cimMakeEnumInstance( CCimObject& , CEnum& ,
|
|
CCimObject& );
|
|
|
|
void cimMakeGroupBindingInstance(CCimObject&, CIterator* );
|
|
void cimMakeGroupInstance(CCimObject&, CRow*, CCimObject&);
|
|
void cimMakeLanguageInstance(CCimObject&, CIterator* );
|
|
|
|
void cimMakeLanguageBindingInstance(CCimObject&,
|
|
CIterator*);
|
|
|
|
void cimMakeComponentBindingInstance(CCimObject&,
|
|
CComponent*, CCimObject&);
|
|
|
|
void MakeGroupName( CComponent*, CGroup* , CBstr&);
|
|
|
|
void MakeGroupName( LONG, CGroup* , CBstr&);
|
|
|
|
BOOL MakeGroupBindingName(CBstr&,CComponent*, CGroup*);
|
|
|
|
void MakeAttributeName( LONG , LPWSTR , CString& );
|
|
|
|
void MakeGroupInstancePath(CVariant&, CIterator*);
|
|
void MakeComponentInstancePath( CComponent* , CVariant& );
|
|
void MakeLanguageInstancePath(CVariant&, CIterator*);
|
|
|
|
void AddStandardAssociationQualifiers( CCimObject&, LPWSTR);
|
|
|
|
|
|
// for dynamic class iterators
|
|
CIterator* New();
|
|
|
|
void dmiGetNextGroupOrRow( IWbemContext* , CString&,
|
|
CIterator*);
|
|
|
|
void dmiGetComponentGroupRowFromPath( IWbemContext* ,
|
|
CObjectPath& , CIterator*);
|
|
|
|
void dmiGetComponentAndGroup ( IWbemContext* , CString& cszClassName ,
|
|
CComponent& Component , CGroup& Group );
|
|
|
|
|
|
public:
|
|
CMapping();
|
|
~CMapping();
|
|
|
|
|
|
void cimMakeComponentInstance(CCimObject&, CComponent&, CRow& ,
|
|
CCimObject&);
|
|
|
|
void Init( CWbemLoopBack* , BSTR, IWbemContext*);
|
|
|
|
void GetNewCGAIterator( IWbemContext* , CIterator**);
|
|
|
|
void GetDynamicClassByName( CString&, CCimObject&,
|
|
CIterator* , IWbemContext* );
|
|
|
|
void GetInstanceByPath( LPWSTR, CCimObject&, CIterator* ,
|
|
IWbemContext*);
|
|
|
|
// Dynamic Cim Class Iterators
|
|
void NextDynamicBinding( CCimObject&, CIterator* ,
|
|
IWbemContext*);
|
|
|
|
void NextDynamicGroup( CCimObject&,CIterator* ,
|
|
IWbemContext*);
|
|
|
|
void NextDynamicInstance( CString&, CIterator*, IWbemContext* , CCimObject& );
|
|
|
|
void NextDynamicBindingInstance( IWbemContext* ,
|
|
CCimObject&, CIterator*);
|
|
|
|
void NextDynamicGroupInstance( IWbemContext* ,
|
|
CCimObject&, CIterator*);
|
|
|
|
void GetDynamicGroupClass ( long , CGroup& , CCimObject& );
|
|
|
|
void GetComponentClass( IWbemContext* , CCimObject& );
|
|
|
|
void GetComponentInstance( CString&, IWbemContext* , CCimObject&);
|
|
|
|
|
|
void GetComponentBindingClass( IWbemContext* , CCimObject& );
|
|
|
|
|
|
void GetLanguageClass( IWbemContext* pICtx , CCimObject&);
|
|
|
|
void GetLanguageInstance( CString&, IWbemContext* , CCimObject& );
|
|
|
|
void MakeLanguageInstance( CVariant& cvLanguage, IWbemContext* , CCimObject& );
|
|
|
|
void GetGroupRootClass( CCimObject&, IWbemContext*);
|
|
|
|
void GetBindingRootClass( CCimObject& , IWbemContext*);
|
|
|
|
void GetLanguageBindingClass(CCimObject&, IWbemContext*);
|
|
|
|
void GetAddParamsClass( CCimObject&, IWbemContext* );
|
|
|
|
void GetDeleteLanguageParamsClass( CCimObject& Class , IWbemContext* );
|
|
|
|
void GetEnumParamsClass( CCimObject& Class , IWbemContext* );
|
|
|
|
void GetNodeDataInstance( CCimObject& , IWbemContext* );
|
|
|
|
void GetNodeDataClass( CCimObject& , IWbemContext* );
|
|
|
|
void GetNodeDataBindingInstance( CCimObject& , IWbemContext* );
|
|
|
|
void GetNodeDataBindingClass ( CCimObject& , IWbemContext* );
|
|
|
|
void GetEnumClass( IWbemContext* , CCimObject& );
|
|
|
|
void GetDmiEventClass( IWbemContext* pICtx , CCimObject& Class);
|
|
|
|
void GetGroupRowInstance ( CRow& , CCimObject& ) ;
|
|
|
|
// Node Methods
|
|
void AddComponent( IWbemContext* , CCimObject&);
|
|
void SetDefaultLanguage( IWbemContext* , CCimObject& );
|
|
|
|
// Component Methods
|
|
void AddLanguage( CString&, CCimObject&, IWbemContext* );
|
|
|
|
void AddGroup( CString&, CCimObject&, IWbemContext*);
|
|
|
|
void DeleteLanguage( CString&, CCimObject& , IWbemContext* );
|
|
|
|
void DynamicGroupGetEnum( CString&, CCimObject&,
|
|
CCimObject& , IWbemContext* );
|
|
|
|
void ComponentGetEnum( CString&, CCimObject&, CCimObject& ,
|
|
IWbemContext* );
|
|
|
|
void ModifyInstanceOrAddRow( IWbemContext* , CCimObject&);
|
|
|
|
void GetNotifyStatusInstance( CCimObject&, ULONG, IWbemContext*); // from CIMOM
|
|
|
|
BOOL GetExtendedStatusInstance( CCimObject& Instance, ULONG ulStatus,
|
|
BSTR bstrDescription, BSTR bstrOperation,
|
|
BSTR bstrParameter, IWbemContext* pICtx );
|
|
|
|
void DeleteDynamicGroupClass(LPWSTR, IWbemContext* );
|
|
|
|
void DeleteInstance( CString& , IWbemContext* );
|
|
|
|
|
|
LONG Release() {return (InterlockedDecrement(&m_lRefCount));}
|
|
void AddRef() {InterlockedIncrement(&m_lRefCount);}
|
|
|
|
CString m_cszNamespace;
|
|
|
|
CMapping* m_pNext;
|
|
CMapping* m_pPrevious;
|
|
};
|
|
|
|
|
|
class CMappings
|
|
{
|
|
private:
|
|
CMapping* m_pFirst;
|
|
CMapping* m_pCurrent;
|
|
|
|
public:
|
|
CMappings();
|
|
~CMappings();
|
|
void MoveToHead() {m_pCurrent = m_pFirst;}
|
|
void Add(CMapping*);
|
|
CMapping* Next();
|
|
void Get( CWbemLoopBack* , CString&, CMapping**, IWbemContext*);
|
|
void Release(CMapping*);
|
|
|
|
};
|
|
|
|
#endif // __MAPPING_H__
|