170 lines
5.2 KiB
C++
170 lines
5.2 KiB
C++
// XMLClientPacketFactory.cpp: implementation of the CXMLClientPacketFactory class.
|
|
//
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
#include "XMLTransportClientHelper.h"
|
|
#include "XMLClientPacket.h"
|
|
#include "GetClassPacket.h"
|
|
#include "GetInstancePacket.h"
|
|
#include "DeleteClassPacket.h"
|
|
#include "DeleteInstancePacket.h"
|
|
#include "Enumerate.h"
|
|
#include "ExecQueryPacket.h"
|
|
#include "PutclassPacket.h"
|
|
#include "ModifyclassPacket.h"
|
|
#include "PutInstancePacket.h"
|
|
#include "ModifyInstancePacket.h"
|
|
#include "EnumerateClassNamesPacket.h"
|
|
#include "EnumerateInstanceNamesPacket.h"
|
|
#include "ExecuteClassMethodpacket.h"
|
|
#include "ExecuteInstanceMethodpacket.h"
|
|
#include "XMLClientPacketFactory.h"
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////
|
|
// Construction/Destruction
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
CXMLClientPacketFactory::CXMLClientPacketFactory()
|
|
{
|
|
}
|
|
|
|
CXMLClientPacketFactory::~CXMLClientPacketFactory()
|
|
{
|
|
}
|
|
|
|
|
|
CXMLClientPacket *CXMLClientPacketFactory::CreateXMLPacket(const WCHAR *pwszLocale,const WCHAR *pwszMethodName,
|
|
const WCHAR *pwszObjPath,
|
|
const WCHAR *pwszNameSpace,
|
|
IWbemContext *pCtx,
|
|
IWbemClassObject *pWbemClassObject,
|
|
bool bLocalOnly,bool bIncludeQualifier,
|
|
bool bDeepInheritance,bool bClassOrigin)
|
|
{
|
|
CXMLClientPacket *pPacket =NULL;
|
|
|
|
if(_wcsicmp(pwszMethodName,L"GetClass")==0)
|
|
{
|
|
pPacket = new CGetClassPacket(pwszObjPath,pwszNameSpace);
|
|
}
|
|
else
|
|
if(_wcsicmp(pwszMethodName,L"GetInstance")==0)
|
|
{
|
|
pPacket = new CGetInstancePacket(pwszObjPath,pwszNameSpace);
|
|
}
|
|
else
|
|
if(_wcsicmp(pwszMethodName,L"DeleteClass")==0)
|
|
{
|
|
pPacket = new CDeleteClassPacket(pwszObjPath,pwszNameSpace);
|
|
}
|
|
else
|
|
if(_wcsicmp(pwszMethodName,L"DeleteInstance")==0)
|
|
{
|
|
pPacket = new CDeleteInstancePacket(pwszObjPath,pwszNameSpace);
|
|
}
|
|
else
|
|
if(_wcsicmp(pwszMethodName,L"EnumerateClasses")==0)
|
|
{
|
|
pPacket = new CEnumeratePacket(pwszObjPath,pwszNameSpace, true);
|
|
}
|
|
else
|
|
if(_wcsicmp(pwszMethodName,L"EnumerateInstances")==0)
|
|
{
|
|
pPacket = new CEnumeratePacket(pwszObjPath,pwszNameSpace, false);
|
|
}
|
|
else
|
|
if(_wcsicmp(pwszMethodName,L"ExecQuery")==0)
|
|
{
|
|
pPacket = new CExecQueryPacket(pwszObjPath,pwszNameSpace);
|
|
}
|
|
else
|
|
if(_wcsicmp(pwszMethodName,L"CreateClass")==0)
|
|
{
|
|
pPacket = new CPutClassPacket(pwszObjPath,pwszNameSpace);
|
|
}
|
|
else
|
|
if(_wcsicmp(pwszMethodName,L"ModifyClass")==0)
|
|
{
|
|
pPacket = new CModifyClassPacket(pwszObjPath,pwszNameSpace);
|
|
}
|
|
else
|
|
if(_wcsicmp(pwszMethodName,L"CreateInstance")==0)
|
|
{
|
|
pPacket = new CPutInstancePacket(pwszObjPath,pwszNameSpace);
|
|
}
|
|
else
|
|
if(_wcsicmp(pwszMethodName,L"ModifyInstance")==0)
|
|
{
|
|
pPacket = new CModifyInstancePacket(pwszObjPath,pwszNameSpace);
|
|
}
|
|
else
|
|
if(_wcsicmp(pwszMethodName,L"EnumerateClassNames")==0)
|
|
{
|
|
pPacket = new CEnumerateClassNamesPacket(pwszObjPath,pwszNameSpace);
|
|
}
|
|
else
|
|
if(_wcsicmp(pwszMethodName,L"EnumerateInstanceNames")==0)
|
|
{
|
|
pPacket = new CEnumerateInstanceNamesPacket(pwszObjPath,pwszNameSpace);
|
|
}
|
|
else
|
|
if(_wcsicmp(pwszMethodName,L"ExecuteClassMethod")==0)
|
|
{
|
|
pPacket = new CExecuteClassMethodPacket(pwszObjPath,pwszNameSpace);
|
|
}
|
|
else
|
|
if(_wcsicmp(pwszMethodName,L"ExecuteInstanceMethod")==0)
|
|
{
|
|
pPacket = new CExecuteInstanceMethodPacket(pwszObjPath,pwszNameSpace);
|
|
}
|
|
|
|
|
|
|
|
if(NULL != pPacket)
|
|
{
|
|
if(pPacket->ClassConstructionSucceeded())
|
|
{
|
|
pPacket->SetOptions(pwszLocale,pCtx,pWbemClassObject,bLocalOnly,bIncludeQualifier,
|
|
bDeepInheritance,bClassOrigin);
|
|
}
|
|
else
|
|
{
|
|
delete [] pPacket;
|
|
pPacket = NULL;
|
|
}
|
|
}
|
|
|
|
return pPacket;
|
|
}
|
|
|
|
|
|
CXMLClientPacket * CXMLClientPacketFactory::CreateXMLPacket(const WCHAR *pwszLocale,const WCHAR *pwszMethodName, const WCHAR *pwszObjPath, const WCHAR *pwszNameSpace)
|
|
{
|
|
return CreateXMLPacket(pwszLocale,pwszMethodName,pwszObjPath,pwszNameSpace,NULL,NULL,false,true,false,true);
|
|
}
|
|
|
|
CXMLClientPacket * CXMLClientPacketFactory::CreateXMLPacket(const WCHAR *pwszLocale,const WCHAR *pwszMethodName,const WCHAR *pwszObjPath,const WCHAR *pwszNameSpace,
|
|
IWbemContext *pCtx)
|
|
{
|
|
return CreateXMLPacket(pwszLocale,pwszMethodName,pwszObjPath,pwszNameSpace,pCtx,NULL,false,true,false,true);
|
|
}
|
|
|
|
CXMLClientPacket * CXMLClientPacketFactory::CreateXMLPacket(const WCHAR *pwszLocale,const WCHAR *pwszMethodName,const WCHAR *pwszObjPath,const WCHAR *pwszNameSpace,
|
|
IWbemContext *pCtx,bool bLocalOnly,bool bIncludeQualifier,
|
|
bool bDeepInheritance,bool bClassOrigin)
|
|
|
|
{
|
|
return CreateXMLPacket(pwszLocale,pwszMethodName,pwszObjPath,pwszNameSpace,pCtx,NULL,bLocalOnly,
|
|
bIncludeQualifier,bDeepInheritance,bClassOrigin);
|
|
}
|
|
|
|
CXMLClientPacket *CXMLClientPacketFactory::CreateXMLPacket(const WCHAR *pwszLocale,const WCHAR *pwszMethodName,const WCHAR *pwszObjPath,
|
|
const WCHAR *pwszNameSpace,
|
|
IWbemContext *pCtx,
|
|
IWbemClassObject *pWbemClassObject)
|
|
{
|
|
return CreateXMLPacket(pwszLocale,pwszMethodName,pwszObjPath,pwszNameSpace,pCtx,pWbemClassObject,false,true,false,true);
|
|
}
|
|
|