2025-04-27 07:49:33 -04:00

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__