version 1.1.2.43, 2009/12/04 10:44:45
|
version 1.1.2.46, 2009/12/10 11:32:44
|
|
|
SCMOInstance( | SCMOInstance( |
const CIMInstance& cimInstance, | const CIMInstance& cimInstance, |
const char* altNameSpace=0, | const char* altNameSpace=0, |
Uint64 altNSLen=0); |
Uint32 altNSLen=0); |
| |
/** | /** |
* Builds a SCMOInstance from the given CIMObjectPath copying all data. | * Builds a SCMOInstance from the given CIMObjectPath copying all data. |
|
|
SCMOInstance( | SCMOInstance( |
const CIMObjectPath& cimObj, | const CIMObjectPath& cimObj, |
const char* altNameSpace=0, | const char* altNameSpace=0, |
Uint64 altNSLen=0); |
Uint32 altNSLen=0); |
| |
/** | /** |
* Builds a SCMOInstance from the given CIMObject copying all data. | * Builds a SCMOInstance from the given CIMObject copying all data. |
|
|
SCMOInstance( | SCMOInstance( |
const CIMObject& cimObject, | const CIMObject& cimObject, |
const char* altNameSpace=0, | const char* altNameSpace=0, |
Uint64 altNSLen=0); |
Uint32 altNSLen=0); |
| |
/** | /** |
* Converts the SCMOInstance into a CIMInstance. | * Converts the SCMOInstance into a CIMInstance. |
|
|
* Maybe only the class name and/or name space are available. | * Maybe only the class name and/or name space are available. |
* @return True if the SCMOInstacne is empty, false otherwise. | * @return True if the SCMOInstacne is empty, false otherwise. |
*/ | */ |
Boolean isEmpty( ) const {return (inst.hdr->theClass->isEmpty()); }; |
Boolean isEmpty( ) const {return (inst.hdr->theClass.ptr->isEmpty()); }; |
| |
/** | /** |
* Determines whether the instance is used as a class container. | * Determines whether the instance is used as a class container. |
|
|
* @param hostName The host name as UTF8. | * @param hostName The host name as UTF8. |
* @param len The strlen of the host name. | * @param len The strlen of the host name. |
*/ | */ |
void setHostName_l(const char* hostName, Uint64 len); |
void setHostName_l(const char* hostName, Uint32 len); |
| |
/** | /** |
* Get the host name of the instance. The caller has to make a copy ! | * Get the host name of the instance. The caller has to make a copy ! |
|
|
* @param Return strlen of result string. | * @param Return strlen of result string. |
* @return The class name as UTF8. | * @return The class name as UTF8. |
*/ | */ |
const char* getHostName_l(Uint64 & length) const; |
const char* getHostName_l(Uint32 & length) const; |
| |
/** | /** |
* Sets the provided class name at the instance. By caling this function | * Sets the provided class name at the instance. By caling this function |
|
|
* @param className The class name as UTF8. | * @param className The class name as UTF8. |
* @param len The strlen of the name space. | * @param len The strlen of the name space. |
*/ | */ |
void setClassName_l(const char* className, Uint64 len); |
void setClassName_l(const char* className, Uint32 len); |
| |
/** | /** |
* Get the class name of the instance. The caller has to make a copy ! | * Get the class name of the instance. The caller has to make a copy ! |
|
|
* @param lenght Return strlen of result string. | * @param lenght Return strlen of result string. |
* @return The class name as UTF8. | * @return The class name as UTF8. |
*/ | */ |
const char* getClassName_l(Uint64 & length) const; |
const char* getClassName_l(Uint32 & length) const; |
| |
/** | /** |
* Sets the provided name space name at the instance. | * Sets the provided name space name at the instance. |
|
|
* @param nameSpaceName The name space name as UTF8. | * @param nameSpaceName The name space name as UTF8. |
* @param len The strlen of the name space. | * @param len The strlen of the name space. |
*/ | */ |
void setNameSpace_l(const char* nameSpace, Uint64 len); |
void setNameSpace_l(const char* nameSpace, Uint32 len); |
| |
/** | /** |
* Get the name space of the instance. The caller has to make a copy ! | * Get the name space of the instance. The caller has to make a copy ! |
|
|
* @param Return strlen of result string. | * @param Return strlen of result string. |
* @return The class name as UTF8. | * @return The class name as UTF8. |
*/ | */ |
const char* getNameSpace_l(Uint64 & length) const; |
const char* getNameSpace_l(Uint32 & length) const; |
| |
/** | /** |
* Is the name space or class name of the instance the origianl values | * Is the name space or class name of the instance the origianl values |
|
|
// All external references has to be destroyed. | // All external references has to be destroyed. |
_destroyExternalReferences(); | _destroyExternalReferences(); |
// The class has also be dereferenced. | // The class has also be dereferenced. |
delete inst.hdr->theClass; |
delete inst.hdr->theClass.ptr; |
free(inst.base); | free(inst.base); |
inst.base=NULL; | inst.base=NULL; |
} | } |
|
|
// All external references has to be destroyed. | // All external references has to be destroyed. |
_destroyExternalReferencesInternal((SCMBMgmt_Header*)oldRef); | _destroyExternalReferencesInternal((SCMBMgmt_Header*)oldRef); |
// The class has also be dereferenced. | // The class has also be dereferenced. |
delete oldRef->theClass; |
delete oldRef->theClass.ptr; |
free((void*)oldRef); | free((void*)oldRef); |
oldRef=0; | oldRef=0; |
} | } |
|
|
static SCMOClass _getSCMOClass( | static SCMOClass _getSCMOClass( |
const CIMObjectPath& theCIMObj, | const CIMObjectPath& theCIMObj, |
const char* altNS, | const char* altNS, |
Uint64 altNSlength); |
Uint32 altNSlength); |
| |
CIMProperty _getCIMPropertyAtNodeIndex(Uint32 nodeIdx) const; | CIMProperty _getCIMPropertyAtNodeIndex(Uint32 nodeIdx) const; |
| |
|
|
SCMBMgmt_Header** pmem, | SCMBMgmt_Header** pmem, |
CIMType type, | CIMType type, |
Uint64 startNS, | Uint64 startNS, |
Uint64 lenNS, |
Uint32 lenNS, |
Union& u); | Union& u); |
| |
static void _setUnionArrayValue( | static void _setUnionArrayValue( |
|
|
CIMType type, | CIMType type, |
Uint32& n, | Uint32& n, |
Uint64 startNS, | Uint64 startNS, |
Uint64 lenNS, |
Uint32 lenNS, |
Union& u); | Union& u); |
| |
static void _setExtRefIndex(SCMBUnion* pInst, SCMBMgmt_Header** pmem); | static void _setExtRefIndex(SCMBUnion* pInst, SCMBMgmt_Header** pmem); |
|
|
(SCMBValue*)&(inst.base[inst.hdr->propertyArray.start]); | (SCMBValue*)&(inst.base[inst.hdr->propertyArray.start]); |
| |
// create a pointer to property node array of the class. | // create a pointer to property node array of the class. |
Uint64 idx = inst.hdr->theClass->cls.hdr->propertySet.nodeArray.start; |
Uint64 idx = inst.hdr->theClass.ptr->cls.hdr->propertySet.nodeArray.start; |
SCMBClassPropertyNode* theClassPropNodeArray = | SCMBClassPropertyNode* theClassPropNodeArray = |
(SCMBClassPropertyNode*)&(inst.hdr->theClass->cls.base)[idx]; |
(SCMBClassPropertyNode*)&(inst.hdr->theClass.ptr->cls.base)[idx]; |
| |
// return the absolute pointer to the property definition | // return the absolute pointer to the property definition |
*propDef= &(theClassPropNodeArray[node].theProperty); | *propDef= &(theClassPropNodeArray[node].theProperty); |
|
|
{ | { |
// return the absolute pointer to | // return the absolute pointer to |
*value = &(theClassPropNodeArray[node].theProperty.defaultValue); | *value = &(theClassPropNodeArray[node].theProperty.defaultValue); |
*valueBase = inst.hdr->theClass->cls.base; |
*valueBase = inst.hdr->theClass.ptr->cls.base; |
} | } |
} | } |
| |
|
|
{ | { |
_getPropertyAt(pos,value,valueBase,propDef); | _getPropertyAt(pos,value,valueBase,propDef); |
| |
*propDefBase = inst.hdr->theClass->cls.base; |
*propDefBase = inst.hdr->theClass.ptr->cls.base; |
} | } |
| |
inline SCMO_RC SCMOInstance::getKeyBindingAtUnresolved( | inline SCMO_RC SCMOInstance::getKeyBindingAtUnresolved( |
|
|
const char** valueBase) const | const char** valueBase) const |
{ | { |
SCMO_RC rc = _getKeyBindingDataAtNodeIndex(node,pname,pnameLen,type,pdata); | SCMO_RC rc = _getKeyBindingDataAtNodeIndex(node,pname,pnameLen,type,pdata); |
|
// Adjust size to string length |
|
if (pnameLen) |
|
{ |
|
pnameLen--; |
|
} |
*valueBase = inst.base; | *valueBase = inst.base; |
return rc; | return rc; |
} | } |