158 lines
4.4 KiB
C++
158 lines
4.4 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(__ASYNCJOB_H__)
|
|
#define __ASYNCJOB_H__
|
|
|
|
class CMapping;
|
|
|
|
|
|
class CAsyncJob
|
|
{
|
|
public:
|
|
~CAsyncJob();
|
|
CAsyncJob();
|
|
void Execute();
|
|
|
|
CWbemLoopBack* m_pWbem;
|
|
|
|
LONG m_lFlags;
|
|
ULONG m_ulType;
|
|
IWbemObjectSink* m_pISink;
|
|
CCimObject m_InParams; // for ExecMethod;
|
|
CCimObject m_Instance;
|
|
IWbemContext* m_pICtx;
|
|
CString m_cszMethod; // for ExecMethod
|
|
CString m_cszSuperClass; // for CreateClassEnumAsync
|
|
CString m_cszPath; // for GetObject
|
|
CString m_cszClass; // for InstanceEnum
|
|
CString m_cszNamespace; // the CIMOM path in from which this job was started
|
|
|
|
SCODE InitCreateClass ( CString& , BSTR , IWbemObjectSink* ,
|
|
LONG , IWbemContext* , CWbemLoopBack* );
|
|
|
|
SCODE InitGetObject ( CString& , BSTR , IWbemObjectSink* ,
|
|
LONG , IWbemContext* , CWbemLoopBack* );
|
|
|
|
SCODE InitInstanceEnum ( CString& , BSTR ,IWbemObjectSink* ,
|
|
LONG , IWbemContext* , CWbemLoopBack* );
|
|
|
|
SCODE InitDeleteInstace ( CString& , BSTR ,IWbemObjectSink* ,
|
|
LONG , IWbemContext* , CWbemLoopBack* );
|
|
|
|
SCODE InitPutInstance ( CString& , IWbemClassObject* ,
|
|
IWbemObjectSink* , IWbemContext* , CWbemLoopBack* );
|
|
|
|
SCODE InitExecMethod ( CString& , BSTR , BSTR ,
|
|
IWbemObjectSink* , IWbemClassObject* ,
|
|
IWbemContext* , CWbemLoopBack* );
|
|
|
|
SCODE InitDeleteClass ( CString& , BSTR , IWbemObjectSink* ,
|
|
LONG , IWbemContext* , CWbemLoopBack* );
|
|
|
|
SCODE Init( ULONG , CString& , IWbemObjectSink* ,
|
|
IWbemContext* , CWbemLoopBack* );
|
|
|
|
SCODE InitAsync( ULONG , CString& , IWbemObjectSink* ,
|
|
IWbemContext* , CWbemLoopBack* );
|
|
|
|
SCODE InitEvent ( CEvent& , CString& cszNamespace ,
|
|
IWbemObjectSink* pISink , CWbemLoopBack* );
|
|
|
|
SCODE InitAddComponentNotification (
|
|
CComponent& Component , CRow& ,
|
|
CString& cszNamespace ,
|
|
IWbemObjectSink* pISink , CWbemLoopBack* );
|
|
|
|
|
|
SCODE InitDeleteComponentNotification (
|
|
CComponent& Component , CRow& ,
|
|
CString& cszNamespace , IWbemObjectSink* pISink ,
|
|
CWbemLoopBack* );
|
|
|
|
|
|
SCODE InitAddGroupNotification (
|
|
CGroup& Group , CString& cszNamespace ,
|
|
IWbemObjectSink* pISink , CWbemLoopBack* );
|
|
|
|
|
|
SCODE InitDeleteGroupNotification ( CGroup& Group ,
|
|
CString& cszNamespace , IWbemObjectSink* pISink ,
|
|
CWbemLoopBack* );
|
|
|
|
|
|
SCODE InitAddLanguageNotification ( CVariant& cvLanguage ,
|
|
CString& cszNamespace , IWbemObjectSink* pISink ,
|
|
CWbemLoopBack* );
|
|
|
|
|
|
SCODE InitDeleteLanguageNotification (
|
|
CVariant& cvLanguage , CString& cszNamespace ,
|
|
IWbemObjectSink* pISink , CWbemLoopBack* );
|
|
static BOOL SystemClass( BSTR);
|
|
|
|
|
|
private:
|
|
|
|
CRow m_Row;
|
|
CComponent m_Component;
|
|
CEvent m_Event;
|
|
CGroup m_Group;
|
|
CVariant m_cvLanguage;
|
|
BOOL m_bEvent;
|
|
|
|
void DeleteClass();
|
|
void DeleteInstance();
|
|
void PutInstance();
|
|
|
|
void EnumBindingClasses();
|
|
void EnumDynamicGroupClasses();
|
|
void EnumTopClasses();
|
|
|
|
|
|
BOOL SystemClass( CString&);
|
|
|
|
void DispatchJob();
|
|
|
|
LONG GetObjectType( CString& );
|
|
void GetObject();
|
|
|
|
void InstanceEnumDeep();
|
|
void InstanceEnumShallow();
|
|
void ClassEnumDeep();
|
|
void ClassEnumShallow();
|
|
void ExecMethod();
|
|
|
|
SCODE InitJob ( );
|
|
|
|
CMapping* m_pMapping;
|
|
|
|
void DoEvent ();
|
|
void DoComponentAddNotify ();
|
|
void DoComponentDeleteNotify ();
|
|
void DoGroupAddNotify ( );
|
|
void DoGroupDeleteNotify ();
|
|
void DoLanguageAddNotify ();
|
|
void DoLanguageDeleteNotify ();
|
|
|
|
};
|
|
|
|
#endif //__ASYNCJOB_H__
|