⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xmlwriter.cpp

📁 Pegasus is an open-source implementationof the DMTF CIM and WBEM standards. It is designed to be por
💻 CPP
📖 第 1 页 / 共 5 页
字号:
    {        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 + -