version 1.3.2.7, 2004/06/03 10:07:41
|
version 1.4, 2004/01/27 13:48:11
|
|
|
PEGASUS_NAMESPACE_BEGIN | PEGASUS_NAMESPACE_BEGIN |
| |
static CMPIStatus instRelease(CMPIInstance* eInst) { | static CMPIStatus instRelease(CMPIInstance* eInst) { |
|
// cout<<"--- instRelease()"<<endl; |
CIMInstance* inst=(CIMInstance*)eInst->hdl; | CIMInstance* inst=(CIMInstance*)eInst->hdl; |
if (inst) { | if (inst) { |
delete inst; | delete inst; |
(reinterpret_cast<CMPI_Object*>(eInst))->unlinkAndDelete(); |
((CMPI_Object*)eInst)->unlinkAndDelete(); |
} | } |
CMReturn(CMPI_RC_OK); | CMReturn(CMPI_RC_OK); |
} | } |
|
|
static CMPIInstance* instClone(CMPIInstance* eInst, CMPIStatus* rc) { | static CMPIInstance* instClone(CMPIInstance* eInst, CMPIStatus* rc) { |
CIMInstance* inst=(CIMInstance*)eInst->hdl; | CIMInstance* inst=(CIMInstance*)eInst->hdl; |
CIMInstance* cInst=new CIMInstance(inst->clone()); | CIMInstance* cInst=new CIMInstance(inst->clone()); |
CMPI_Object* obj=new CMPI_Object(cInst); |
CMPIInstance* neInst=(CMPIInstance*)new CMPI_Object(cInst);//,CMPI_Instance_Ftab); |
obj->unlink(); |
|
CMPIInstance* neInst=reinterpret_cast<CMPIInstance*>(obj); |
|
if (rc) CMSetStatus(rc,CMPI_RC_OK); | if (rc) CMSetStatus(rc,CMPI_RC_OK); |
return neInst; | return neInst; |
} | } |
|
|
static CMPIData instGetPropertyAt(CMPIInstance* eInst, CMPICount pos, CMPIString** name, | static CMPIData instGetPropertyAt(CMPIInstance* eInst, CMPICount pos, CMPIString** name, |
CMPIStatus* rc) { | CMPIStatus* rc) { |
CIMInstance* inst=(CIMInstance*)eInst->hdl; | CIMInstance* inst=(CIMInstance*)eInst->hdl; |
CMPIData data={0,CMPI_nullValue,{0}}; |
CMPIData data={0,0,{0}}; |
| |
if (pos>inst->getPropertyCount()) { | if (pos>inst->getPropertyCount()) { |
if (rc) CMSetStatus(rc,CMPI_RC_ERR_NOT_FOUND); | if (rc) CMSetStatus(rc,CMPI_RC_ERR_NOT_FOUND); |
CMPIData d={0,CMPI_nullValue|CMPI_notFound,{0}}; |
return data; |
return d; |
|
} | } |
const CIMProperty& p=inst->getProperty(pos); | const CIMProperty& p=inst->getProperty(pos); |
const CIMValue& v=p.getValue(); | const CIMValue& v=p.getValue(); |
|
|
return data; | return data; |
} | } |
| |
static CMPIData instGetProperty(CMPIInstance* eInst, const char *name, CMPIStatus* rc) { |
static CMPIData instGetProperty(CMPIInstance* eInst, char* name, CMPIStatus* rc) { |
CIMInstance* inst=(CIMInstance*)eInst->hdl; | CIMInstance* inst=(CIMInstance*)eInst->hdl; |
Uint32 pos=inst->findProperty(String(name)); | Uint32 pos=inst->findProperty(String(name)); |
| |
|
|
if (rc) CMSetStatus(rc,CMPI_RC_OK); | if (rc) CMSetStatus(rc,CMPI_RC_OK); |
return instGetPropertyAt(eInst,pos,NULL,rc); | return instGetPropertyAt(eInst,pos,NULL,rc); |
} | } |
CMPIData data={0,CMPI_nullValue|CMPI_notFound,{0}}; |
CMPIData data={0,0,{0}}; |
if (rc) CMSetStatus(rc,CMPI_RC_ERR_NOT_FOUND); | if (rc) CMSetStatus(rc,CMPI_RC_ERR_NOT_FOUND); |
return data; | return data; |
} | } |
|
|
TraceableCIMException(CODE, EXTRA_MESSAGE, __FILE__, __LINE__) | TraceableCIMException(CODE, EXTRA_MESSAGE, __FILE__, __LINE__) |
| |
| |
static CMPIStatus instSetProperty(CMPIInstance* eInst, const char *name, |
static CMPIStatus instSetProperty(CMPIInstance* eInst, char* name, |
CMPIValue* data, CMPIType type) { | CMPIValue* data, CMPIType type) { |
CIMInstance *inst=(CIMInstance*)eInst->hdl; | CIMInstance *inst=(CIMInstance*)eInst->hdl; |
char **list=(char**)(reinterpret_cast<CMPI_Object*>(eInst))->priv; |
char **list=(char**)((CMPI_Object*)eInst)->priv; |
CMPIrc rc; | CMPIrc rc; |
| |
if (list) { | if (list) { |
|
|
abort(); | abort(); |
} | } |
CMReturnWithString(CMPI_RC_ERR_FAILED, | CMReturnWithString(CMPI_RC_ERR_FAILED, |
reinterpret_cast<CMPIString*>(new CMPI_Object(e.getMessage()))); |
(CMPIString*)new CMPI_Object(e.getMessage())); |
} | } |
} | } |
else { | else { |
|
|
CMPIObjectPath *cop=NULL; | CMPIObjectPath *cop=NULL; |
if (clsRef.getKeyBindings().size()==0) { | if (clsRef.getKeyBindings().size()==0) { |
CIMClass *cc=mbGetClass(CMPI_ThreadContext::getBroker(),clsRef); | CIMClass *cc=mbGetClass(CMPI_ThreadContext::getBroker(),clsRef); |
const CIMObjectPath &ref=inst->buildPath( |
const CIMObjectPath &ref=inst->buildPath((const CIMConstClass&)*cc); |
*(reinterpret_cast<const CIMConstClass*>(cc))); |
cop=(CMPIObjectPath*)new CMPI_Object(new CIMObjectPath(ref)); |
cop=reinterpret_cast<CMPIObjectPath*> |
|
(new CMPI_Object(new CIMObjectPath(ref))); |
|
|
|
} | } |
else cop=reinterpret_cast<CMPIObjectPath*>(new CMPI_Object(new CIMObjectPath(clsRef))); |
else cop=(CMPIObjectPath*)new CMPI_Object(new CIMObjectPath(clsRef)); |
if (rc) CMSetStatus(rc,CMPI_RC_OK); | if (rc) CMSetStatus(rc,CMPI_RC_OK); |
return cop; | return cop; |
} | } |
| |
static CMPIStatus instSetPropertyFilter(CMPIInstance* eInst, | static CMPIStatus instSetPropertyFilter(CMPIInstance* eInst, |
char** propertyList, char **keys){ | char** propertyList, char **keys){ |
CMPI_Object *inst=reinterpret_cast<CMPI_Object*>(eInst); |
CMPI_Object *inst=(CMPI_Object*)eInst; |
char **list=(char**)inst->priv; // Thank you Warren ! | char **list=(char**)inst->priv; // Thank you Warren ! |
int i,s; | int i,s; |
| |