version 1.1.2.3, 2009/09/18 09:11:11
|
version 1.1.2.4, 2009/09/24 13:22:52
|
|
|
kbType, | kbType, |
&kbValue); | &kbValue); |
| |
/* TODO: NEED to handle new _getKeyBindingDataAtNodeIndex() |
|
out << STRLIT("<KEYBINDING NAME=\""); | out << STRLIT("<KEYBINDING NAME=\""); |
out.append(kbName,kbNameLen-1); | out.append(kbName,kbNameLen-1); |
out << STRLIT("\">\n"); | out << STRLIT("\">\n"); |
| |
if (kbType == CIMKeyBinding::REFERENCE) |
if (kbType == CIMTYPE_REFERENCE) |
{ | { |
|
/* |
TODO: NEED RESOLvE the value down to a SCMO.... | TODO: NEED RESOLvE the value down to a SCMO.... |
CIMObjectPath ref = keyBindings[i].getValue(); | CIMObjectPath ref = keyBindings[i].getValue(); |
appendValueReferenceElement(out, ref, true); | appendValueReferenceElement(out, ref, true); |
|
*/ |
} | } |
else | else |
{ | { |
out << STRLIT("<KEYVALUE VALUETYPE=\""); | out << STRLIT("<KEYVALUE VALUETYPE=\""); |
out << keyBindingTypeToString(kbType); |
out << xmlWriterKeyTypeStrings(kbType); |
out << STRLIT("\">"); | out << STRLIT("\">"); |
| |
// fixed the special character problem - Markus |
SCMOXmlWriter::appendSCMBUnion( |
|
out, |
|
*kbValue, |
|
kbType, |
|
scmoInstance.inst.base); |
| |
appendSpecial(out, kbValue, kbValueLen-1); |
|
out << STRLIT("</KEYVALUE>\n"); | out << STRLIT("</KEYVALUE>\n"); |
} | } |
out << STRLIT("</KEYBINDING>\n"); | out << STRLIT("</KEYBINDING>\n"); |
*/ |
|
} | } |
out << STRLIT("</INSTANCENAME>\n"); | out << STRLIT("</INSTANCENAME>\n"); |
} | } |
|
|
} | } |
SCMOXmlWriter::appendValueElement( | SCMOXmlWriter::appendValueElement( |
out, | out, |
propertyValue, |
*propertyValue, |
propertyValueBase); | propertyValueBase); |
| |
out << STRLIT("</PROPERTY>\n"); | out << STRLIT("</PROPERTY>\n"); |
|
|
| |
static void appendValueElement( | static void appendValueElement( |
Buffer& out, | Buffer& out, |
SCMBValue * value, |
SCMBValue & value, |
const char * base) | const char * base) |
{ | { |
if (value->flags.isNull) |
if (value.flags.isNull) |
{ | { |
return; | return; |
} | } |
if (value->flags.isArray) |
if (value.flags.isArray) |
{ | { |
/* | /* |
switch (value.getType()) | switch (value.getType()) |
|
|
} | } |
*/ | */ |
} | } |
else if (value->valueType == CIMTYPE_REFERENCE) |
else if (value.valueType == CIMTYPE_REFERENCE) |
{ | { |
/* | /* |
// Has to be separate because it uses VALUE.REFERENCE tag | // Has to be separate because it uses VALUE.REFERENCE tag |
|
|
{ | { |
out << STRLIT("<VALUE>"); | out << STRLIT("<VALUE>"); |
| |
switch (value->valueType) |
// Call function to write a SCMBUnion + type field |
|
appendSCMBUnion(out,value.value, value.valueType,base); |
|
|
|
out << STRLIT("</VALUE>\n"); |
|
} |
|
} |
|
|
|
static void appendSCMBUnion( |
|
Buffer& out, |
|
const SCMBUnion & u, |
|
const CIMType & valueType, |
|
const char * base) |
|
{ |
|
switch (valueType) |
{ | { |
case CIMTYPE_BOOLEAN: | case CIMTYPE_BOOLEAN: |
{ | { |
SCMOXmlWriter::append(out, value->value.simple.val.bin); |
SCMOXmlWriter::append(out, u.simple.val.bin); |
break; | break; |
} | } |
| |
case CIMTYPE_UINT8: | case CIMTYPE_UINT8: |
{ | { |
SCMOXmlWriter::append(out, value->value.simple.val.u8); |
SCMOXmlWriter::append(out, u.simple.val.u8); |
break; | break; |
} | } |
| |
case CIMTYPE_SINT8: | case CIMTYPE_SINT8: |
{ | { |
SCMOXmlWriter::append(out, value->value.simple.val.s8); |
SCMOXmlWriter::append(out, u.simple.val.s8); |
break; | break; |
} | } |
| |
case CIMTYPE_UINT16: | case CIMTYPE_UINT16: |
{ | { |
SCMOXmlWriter::append(out, value->value.simple.val.u16); |
SCMOXmlWriter::append(out, u.simple.val.u16); |
break; | break; |
} | } |
| |
case CIMTYPE_SINT16: | case CIMTYPE_SINT16: |
{ | { |
SCMOXmlWriter::append(out, value->value.simple.val.s16); |
SCMOXmlWriter::append(out, u.simple.val.s16); |
break; | break; |
} | } |
| |
case CIMTYPE_UINT32: | case CIMTYPE_UINT32: |
{ | { |
SCMOXmlWriter::append(out, value->value.simple.val.u32); |
SCMOXmlWriter::append(out, u.simple.val.u32); |
break; | break; |
} | } |
| |
case CIMTYPE_SINT32: | case CIMTYPE_SINT32: |
{ | { |
SCMOXmlWriter::append(out, value->value.simple.val.s32); |
SCMOXmlWriter::append(out, u.simple.val.s32); |
break; | break; |
} | } |
| |
case CIMTYPE_UINT64: | case CIMTYPE_UINT64: |
{ | { |
SCMOXmlWriter::append(out, value->value.simple.val.u64); |
SCMOXmlWriter::append(out, u.simple.val.u64); |
break; | break; |
} | } |
| |
case CIMTYPE_SINT64: | case CIMTYPE_SINT64: |
{ | { |
SCMOXmlWriter::append(out, value->value.simple.val.s64); |
SCMOXmlWriter::append(out, u.simple.val.s64); |
break; | break; |
} | } |
| |
case CIMTYPE_REAL32: | case CIMTYPE_REAL32: |
{ | { |
SCMOXmlWriter::append(out, value->value.simple.val.r32); |
SCMOXmlWriter::append(out, u.simple.val.r32); |
break; | break; |
} | } |
| |
case CIMTYPE_REAL64: | case CIMTYPE_REAL64: |
{ | { |
SCMOXmlWriter::append(out, value->value.simple.val.r64); |
SCMOXmlWriter::append(out, u.simple.val.r64); |
break; | break; |
} | } |
| |
|
|
{ | { |
SCMOXmlWriter::appendSpecial( | SCMOXmlWriter::appendSpecial( |
out, | out, |
value->value.simple.val.c16); |
u.simple.val.c16); |
break; | break; |
} | } |
| |
|
|
{ | { |
SCMOXmlWriter::appendSpecial( | SCMOXmlWriter::appendSpecial( |
out, | out, |
&(base[value->value.stringValue.start]), |
&(base[u.stringValue.start]), |
value->value.stringValue.length-1); |
u.stringValue.length-1); |
break; | break; |
} | } |
| |
|
|
// an SCMBDateTime is a CIMDateTimeRep | // an SCMBDateTime is a CIMDateTimeRep |
// this should help us to reuse existing optimized Datetime | // this should help us to reuse existing optimized Datetime |
char buffer[26]; | char buffer[26]; |
_DateTimetoCStr(&(value->value.dateTimeValue), buffer); |
_DateTimetoCStr(&(u.dateTimeValue), buffer); |
// datetime value is formatted with a \0 at end, ignore | // datetime value is formatted with a \0 at end, ignore |
out.append(buffer,sizeof(buffer)-1); | out.append(buffer,sizeof(buffer)-1); |
break; | break; |
|
|
PEGASUS_ASSERT(false); | PEGASUS_ASSERT(false); |
*/ | */ |
} | } |
out << STRLIT("</VALUE>\n"); |
|
} |
|
} | } |
| |
private: | private: |