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

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__