📄 xmlwriter.cpp
字号:
{ appendLocalInstancePathElement(out, objectPath); } else { appendLocalClassPathElement(out, objectPath); }}//------------------------------------------------------------------------------//// Helper functions for appendValueElement()////------------------------------------------------------------------------------inline void _xmlWritter_appendValue(Buffer& out, Boolean x){ XmlWriter::append(out, x);}inline void _xmlWritter_appendValue(Buffer& out, Uint8 x){ XmlWriter::append(out, Uint32(x));}inline void _xmlWritter_appendValue(Buffer& out, Sint8 x){ XmlWriter::append(out, Sint32(x));}inline void _xmlWritter_appendValue(Buffer& out, Uint16 x){ XmlWriter::append(out, Uint32(x));}inline void _xmlWritter_appendValue(Buffer& out, Sint16 x){ XmlWriter::append(out, Sint32(x));}inline void _xmlWritter_appendValue(Buffer& out, Uint32 x){ XmlWriter::append(out, x);}inline void _xmlWritter_appendValue(Buffer& out, Sint32 x){ XmlWriter::append(out, x);}inline void _xmlWritter_appendValue(Buffer& out, Uint64 x){ XmlWriter::append(out, x);}inline void _xmlWritter_appendValue(Buffer& out, Sint64 x){ XmlWriter::append(out, x);}inline void _xmlWritter_appendValue(Buffer& out, Real32 x){ XmlWriter::append(out, x);}inline void _xmlWritter_appendValue(Buffer& out, Real64 x){ XmlWriter::append(out, x);}inline void _xmlWritter_appendValue(Buffer& out, const Char16& x){ XmlWriter::appendSpecial(out, x);}inline void _xmlWritter_appendValue(Buffer& out, const String& x){ XmlWriter::appendSpecial(out, x);}inline void _xmlWritter_appendValue(Buffer& out, const CIMDateTime& x){ // It is not necessary to use XmlWriter::appendSpecial(), because // CIMDateTime values do not contain special characters. out << x.toString();}inline void _xmlWritter_appendValue(Buffer& out, const CIMObjectPath& x){ XmlWriter::appendValueReferenceElement(out, x, true);}inline void _xmlWritter_appendValue(Buffer& out, const CIMObject& x){ String myStr = x.toString(); _xmlWritter_appendValue(out, myStr);}void _xmlWritter_appendValueArray( Buffer& out, const CIMObjectPath* p, Uint32 size){ out << STRLIT("<VALUE.REFARRAY>\n"); while (size--) { _xmlWritter_appendValue(out, *p++); } out << STRLIT("</VALUE.REFARRAY>\n");}template<class T>void _xmlWritter_appendValueArray(Buffer& out, const T* p, Uint32 size){ out << STRLIT("<VALUE.ARRAY>\n"); while (size--) { out << STRLIT("<VALUE>"); _xmlWritter_appendValue(out, *p++); out << STRLIT("</VALUE>\n"); } out << STRLIT("</VALUE.ARRAY>\n");}//------------------------------------------------------------------------------//// appendValueElement()//// <!ELEMENT VALUE (#PCDATA)>// <!ELEMENT VALUE.ARRAY (VALUE*)>// <!ELEMENT VALUE.REFERENCE// (CLASSPATH|LOCALCLASSPATH|CLASSNAME|INSTANCEPATH|LOCALINSTANCEPATH|// INSTANCENAME)>// <!ELEMENT VALUE.REFARRAY (VALUE.REFERENCE*)>////------------------------------------------------------------------------------void XmlWriter::appendValueElement( Buffer& out, const CIMValue& value){ if (value.isNull()) { return; } if (value.isArray()) { switch (value.getType()) { case CIMTYPE_BOOLEAN: { Array<Boolean> a; value.get(a); _xmlWritter_appendValueArray(out, a.getData(), a.size()); break; } case CIMTYPE_UINT8: { Array<Uint8> a; value.get(a); _xmlWritter_appendValueArray(out, a.getData(), a.size()); break; } case CIMTYPE_SINT8: { Array<Sint8> a; value.get(a); _xmlWritter_appendValueArray(out, a.getData(), a.size()); break; } case CIMTYPE_UINT16: { Array<Uint16> a; value.get(a); _xmlWritter_appendValueArray(out, a.getData(), a.size()); break; } case CIMTYPE_SINT16: { Array<Sint16> a; value.get(a); _xmlWritter_appendValueArray(out, a.getData(), a.size()); break; } case CIMTYPE_UINT32: { Array<Uint32> a; value.get(a); _xmlWritter_appendValueArray(out, a.getData(), a.size()); break; } case CIMTYPE_SINT32: { Array<Sint32> a; value.get(a); _xmlWritter_appendValueArray(out, a.getData(), a.size()); break; } case CIMTYPE_UINT64: { Array<Uint64> a; value.get(a); _xmlWritter_appendValueArray(out, a.getData(), a.size()); break; } case CIMTYPE_SINT64: { Array<Sint64> a; value.get(a); _xmlWritter_appendValueArray(out, a.getData(), a.size()); break; } case CIMTYPE_REAL32: { Array<Real32> a; value.get(a); _xmlWritter_appendValueArray(out, a.getData(), a.size()); break; } case CIMTYPE_REAL64: { Array<Real64> a; value.get(a); _xmlWritter_appendValueArray(out, a.getData(), a.size()); break; } case CIMTYPE_CHAR16: { Array<Char16> a; value.get(a); _xmlWritter_appendValueArray(out, a.getData(), a.size()); break; } case CIMTYPE_STRING: { const String* data; Uint32 size; value._get(data, size); _xmlWritter_appendValueArray(out, data, size); break; } case CIMTYPE_DATETIME: { Array<CIMDateTime> a; value.get(a); _xmlWritter_appendValueArray(out, a.getData(), a.size()); break; } case CIMTYPE_REFERENCE: { Array<CIMObjectPath> a; value.get(a); _xmlWritter_appendValueArray(out, a.getData(), a.size()); break; } case CIMTYPE_OBJECT: { Array<CIMObject> a; value.get(a); _xmlWritter_appendValueArray(out, a.getData(), a.size()); break; }#ifdef PEGASUS_EMBEDDED_INSTANCE_SUPPORT case CIMTYPE_INSTANCE: { Array<CIMInstance> a; value.get(a); _xmlWritter_appendValueArray(out, a.getData(), a.size()); break; }#endif // PEGASUS_EMBEDDED_INSTANCE_SUPPORT default: PEGASUS_ASSERT(false); } } else if (value.getType() == CIMTYPE_REFERENCE) { // Has to be separate because it uses VALUE.REFERENCE tag CIMObjectPath v; value.get(v); _xmlWritter_appendValue(out, v); } else { out << STRLIT("<VALUE>"); switch (value.getType()) { case CIMTYPE_BOOLEAN: { Boolean v; value.get(v); _xmlWritter_appendValue(out, v); break; } case CIMTYPE_UINT8: { Uint8 v; value.get(v); _xmlWritter_appendValue(out, v); break; } case CIMTYPE_SINT8: { Sint8 v; value.get(v); _xmlWritter_appendValue(out, v); break; } case CIMTYPE_UINT16: { Uint16 v; value.get(v); _xmlWritter_appendValue(out, v); break; } case CIMTYPE_SINT16: { Sint16 v; value.get(v); _xmlWritter_appendValue(out, v); break; } case CIMTYPE_UINT32: { Uint32 v; value.get(v); _xmlWritter_appendValue(out, v); break; } case CIMTYPE_SINT32: { Sint32 v; value.get(v); _xmlWritter_appendValue(out, v); break; } case CIMTYPE_UINT64: { Uint64 v; value.get(v); _xmlWritter_appendValue(out, v); break; } case CIMTYPE_SINT64: { Sint64 v; value.get(v); _xmlWritter_appendValue(out, v); break; } case CIMTYPE_REAL32: { Real32 v; value.get(v); _xmlWritter_appendValue(out, v); break; } case CIMTYPE_REAL64: { Real64 v; value.get(v); _xmlWritter_appendValue(out, v); break; } case CIMTYPE_CHAR16: { Char16 v; value.get(v); _xmlWritter_appendValue(out, v); break; } case CIMTYPE_STRING: { String v; value.get(v); _xmlWritter_appendValue(out, v); break; } case CIMTYPE_DATETIME: { CIMDateTime v; value.get(v); _xmlWritter_appendValue(out, v); break; } case CIMTYPE_OBJECT: { CIMObject v; value.get(v); _xmlWritter_appendValue(out, v); break; }#ifdef PEGASUS_EMBEDDED_INSTANCE_SUPPORT case CIMTYPE_INSTANCE: { CIMInstance v; value.get(v); _xmlWritter_appendValue(out, v); break; }#endif // PEGASUS_EMBEDDED_INSTANCE_SUPPORT default: PEGASUS_ASSERT(false); } out << STRLIT("</VALUE>\n"); }}void XmlWriter::printValueElement( const CIMValue& value, PEGASUS_STD(ostream)& os){ Buffer tmp; appendValueElement(tmp, value); tmp.append('\0'); os << tmp.getData() << PEGASUS_STD(endl);}//------------------------------------------------------------------------------//// appendValueObjectWithPathElement()//// <!ELEMENT VALUE.OBJECTWITHPATH// ((CLASSPATH,CLASS)|(INSTANCEPATH,INSTANCE))>////------------------------------------------------------------------------------void XmlWriter::appendValueObjectWithPathElement( Buffer& out, const CIMObject& objectWithPath){ out << STRLIT("<VALUE.OBJECTWITHPATH>\n"); appendValueReferenceElement(out, objectWithPath.getPath (), false); appendObjectElement(out, objectWithPath);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -