cimoperationresponsedecoder.cpp

来自「Pegasus is an open-source implementation」· C++ 代码 · 共 1,785 行 · 第 1/4 页

CPP
1,785
字号
        if (XmlReader::getErrorElement(parser, cimException))        {            return new CIMEnumerateClassNamesResponseMessage(                messageId,                cimException,                QueueIdStack(),                Array<CIMName>());        }        if (XmlReader::testStartTagOrEmptyTag(parser, entry, "IRETURNVALUE"))        {            if (entry.type != XmlEntry::EMPTY_TAG)            {                CIMName className;                while (XmlReader::getClassNameElement(parser, className, false))                    classNames.append(className);                XmlReader::expectEndTag(parser, "IRETURNVALUE");            }        }    }    return new CIMEnumerateClassNamesResponseMessage(        messageId,        cimException,        QueueIdStack(),        classNames);}CIMEnumerateClassesResponseMessage*    CIMOperationResponseDecoder::_decodeEnumerateClassesResponse(        XmlParser& parser,        const String& messageId,        Boolean isEmptyImethodresponseTag){    XmlEntry entry;    CIMException cimException;    Array<CIMClass> cimClasses;    if (!isEmptyImethodresponseTag)    {        if (XmlReader::getErrorElement(parser, cimException))        {            return new CIMEnumerateClassesResponseMessage(                messageId,                cimException,                QueueIdStack(),                Array<CIMClass>());        }        if (XmlReader::testStartTagOrEmptyTag(parser, entry, "IRETURNVALUE"))        {            if (entry.type != XmlEntry::EMPTY_TAG)            {                CIMClass cimClass;                while (XmlReader::getClassElement(parser, cimClass))                    cimClasses.append(cimClass);                XmlReader::expectEndTag(parser, "IRETURNVALUE");            }        }    }    return new CIMEnumerateClassesResponseMessage(        messageId,        cimException,        QueueIdStack(),        cimClasses);}CIMDeleteClassResponseMessage*    CIMOperationResponseDecoder::_decodeDeleteClassResponse(        XmlParser& parser,        const String& messageId,        Boolean isEmptyImethodresponseTag){    XmlEntry entry;    CIMException cimException;    if (!isEmptyImethodresponseTag)    {        if (XmlReader::getErrorElement(parser, cimException))        {            return new CIMDeleteClassResponseMessage(                messageId,                cimException,                QueueIdStack());        }        if (XmlReader::testStartTagOrEmptyTag(parser, entry, "IRETURNVALUE"))        {            if (entry.type != XmlEntry::EMPTY_TAG)            {                XmlReader::expectEndTag(parser, "IRETURNVALUE");            }        }    }    return new CIMDeleteClassResponseMessage(        messageId,        cimException,        QueueIdStack());}CIMCreateInstanceResponseMessage*    CIMOperationResponseDecoder::_decodeCreateInstanceResponse(        XmlParser& parser,        const String& messageId,        Boolean isEmptyImethodresponseTag){    XmlEntry entry;    CIMException cimException;    if (isEmptyImethodresponseTag)    {        MessageLoaderParms mlParms("Common.XmlReader.EXPECTED_OPEN",            "Expected open of $0 element", "IMETHODRESPONSE");        throw XmlValidationError(parser.getLine(), mlParms);    }    else if (XmlReader::getErrorElement(parser, cimException))    {        return new CIMCreateInstanceResponseMessage(            messageId,            cimException,            QueueIdStack(),            CIMObjectPath());    }    else if (XmlReader::testStartTag(parser, entry, "IRETURNVALUE"))    {        CIMObjectPath instanceName;        XmlReader::getInstanceNameElement(parser, instanceName);        XmlReader::expectEndTag(parser, "IRETURNVALUE");        return new CIMCreateInstanceResponseMessage(            messageId,            cimException,            QueueIdStack(),            instanceName);    }    else    {        MessageLoaderParms mlParms(            "Client.CIMOperationResponseDecoder."                "EXPECTED_ERROR_OR_IRETURNVALUE_ELEMENT",            "expected ERROR or IRETURNVALUE element");        throw XmlValidationError(parser.getLine(), mlParms);    }}CIMGetInstanceResponseMessage*    CIMOperationResponseDecoder::_decodeGetInstanceResponse(        XmlParser& parser,        const String& messageId,        Boolean isEmptyImethodresponseTag){    XmlEntry entry;    CIMException cimException;    if (isEmptyImethodresponseTag)    {        MessageLoaderParms mlParms("Common.XmlReader.EXPECTED_OPEN",            "Expected open of $0 element", "IMETHODRESPONSE");        throw XmlValidationError(parser.getLine(), mlParms);    }    else if (XmlReader::getErrorElement(parser, cimException))    {        return new CIMGetInstanceResponseMessage(            messageId,            cimException,            QueueIdStack(),            CIMInstance());    }    else if (XmlReader::testStartTagOrEmptyTag(parser, entry, "IRETURNVALUE"))    {        CIMInstance cimInstance;        if ((entry.type == XmlEntry::EMPTY_TAG) ||            !XmlReader::getInstanceElement(parser, cimInstance))        {            MessageLoaderParms mlParms(                "Client.CIMOperationResponseDecoder.EXPECTED_INSTANCE_ELEMENT",                "expected INSTANCE element");            throw XmlValidationError(parser.getLine(), mlParms);        }        XmlReader::expectEndTag(parser, "IRETURNVALUE");        return new CIMGetInstanceResponseMessage(            messageId,            cimException,            QueueIdStack(),            cimInstance);    }    else    {        MessageLoaderParms mlParms(            "Client.CIMOperationResponseDecoder."                "EXPECTED_ERROR_OR_IRETURNVALUE_ELEMENT",            "expected ERROR or IRETURNVALUE element");        throw XmlValidationError(parser.getLine(), mlParms);    }}CIMModifyInstanceResponseMessage*    CIMOperationResponseDecoder::_decodeModifyInstanceResponse(        XmlParser& parser,        const String& messageId,        Boolean isEmptyImethodresponseTag){    XmlEntry entry;    CIMException cimException;    if (!isEmptyImethodresponseTag)    {        if (XmlReader::getErrorElement(parser, cimException))        {            return new CIMModifyInstanceResponseMessage(                messageId,                cimException,                QueueIdStack());        }        if (XmlReader::testStartTagOrEmptyTag(parser, entry, "IRETURNVALUE"))        {            if (entry.type != XmlEntry::EMPTY_TAG)            {                XmlReader::expectEndTag(parser, "IRETURNVALUE");            }        }    }    return new CIMModifyInstanceResponseMessage(        messageId,        cimException,        QueueIdStack());}CIMEnumerateInstanceNamesResponseMessage*    CIMOperationResponseDecoder::_decodeEnumerateInstanceNamesResponse(        XmlParser& parser,        const String& messageId,        Boolean isEmptyImethodresponseTag){    XmlEntry entry;    CIMException cimException;    Array<CIMObjectPath> instanceNames;    if (!isEmptyImethodresponseTag)    {        if (XmlReader::getErrorElement(parser, cimException))        {            return new CIMEnumerateInstanceNamesResponseMessage(                messageId,                cimException,                QueueIdStack(),                Array<CIMObjectPath>());        }        if (XmlReader::testStartTagOrEmptyTag(parser, entry, "IRETURNVALUE"))        {            if (entry.type != XmlEntry::EMPTY_TAG)            {                String className;                Array<CIMKeyBinding> keyBindings;                while (XmlReader::getInstanceNameElement(                    parser, className, keyBindings))                {                    CIMObjectPath r(                        String::EMPTY,                        CIMNamespaceName(),                        className,                        keyBindings);                    instanceNames.append(r);                }                XmlReader::expectEndTag(parser, "IRETURNVALUE");            }        }    }    return new CIMEnumerateInstanceNamesResponseMessage(        messageId,        cimException,        QueueIdStack(),        instanceNames);}CIMEnumerateInstancesResponseMessage*    CIMOperationResponseDecoder::_decodeEnumerateInstancesResponse(        XmlParser& parser,        const String& messageId,        Boolean isEmptyImethodresponseTag){    XmlEntry entry;    CIMException cimException;    Array<CIMInstance> namedInstances;    if (!isEmptyImethodresponseTag)    {        if (XmlReader::getErrorElement(parser, cimException))        {            return new CIMEnumerateInstancesResponseMessage(                messageId,                cimException,                QueueIdStack(),                Array<CIMInstance>());        }        if (XmlReader::testStartTagOrEmptyTag(parser, entry, "IRETURNVALUE"))        {            if (entry.type != XmlEntry::EMPTY_TAG)            {                CIMInstance namedInstance;                while (XmlReader::getNamedInstanceElement(                           parser, namedInstance))                {                    namedInstances.append(namedInstance);                }                XmlReader::expectEndTag(parser, "IRETURNVALUE");            }        }    }    return new CIMEnumerateInstancesResponseMessage(        messageId,        cimException,        QueueIdStack(),        namedInstances);}CIMDeleteInstanceResponseMessage*    CIMOperationResponseDecoder::_decodeDeleteInstanceResponse(        XmlParser& parser,        const String& messageId,        Boolean isEmptyImethodresponseTag){    XmlEntry entry;    CIMException cimException;    if (!isEmptyImethodresponseTag)    {        if (XmlReader::getErrorElement(parser, cimException))        {            return new CIMDeleteInstanceResponseMessage(                messageId,                cimException,                QueueIdStack());        }        if (XmlReader::testStartTagOrEmptyTag(parser, entry, "IRETURNVALUE"))        {            if (entry.type != XmlEntry::EMPTY_TAG)            {                XmlReader::expectEndTag(parser, "IRETURNVALUE");            }        }    }    return new CIMDeleteInstanceResponseMessage(        messageId,        cimException,        QueueIdStack());}CIMGetPropertyResponseMessage*    CIMOperationResponseDecoder::_decodeGetPropertyResponse(        XmlParser& parser,        const String& messageId,        Boolean isEmptyImethodresponseTag){    XmlEntry entry;    CIMException cimException;    CIMValue cimValue(CIMTYPE_STRING, false);    if (!isEmptyImethodresponseTag)    {        if (XmlReader::getErrorElement(parser, cimException))        {            return new CIMGetPropertyResponseMessage(                messageId,                cimException,                QueueIdStack(),                CIMValue());        }        if (XmlReader::testStartTagOrEmptyTag(parser, entry, "IRETURNVALUE"))        {            if (entry.type != XmlEntry::EMPTY_TAG)            {                if (!XmlReader::getPropertyValue(parser, cimValue))                {                    // No value given; just return a null String value                }                XmlReader::expectEndTag(parser, "IRETURNVALUE");            }        }        else        {            // No value given; just return a null String value        }    }    return new CIMGetPropertyResponseMessage(        messageId,        cimException,        QueueIdStack(),        cimValue);}CIMSetPropertyResponseMessage*    CIMOperationResponseDecoder::_decodeSetPropertyResponse(        XmlParser& parser,        const String& messageId,        Boolean isEmptyImethodresponseTag){    XmlEntry entry;    CIMException cimException;    if (!isEmptyImethodresponseTag)    {        if (XmlReader::getErrorElement(parser, cimException))        {            return new CIMSetPropertyResponseMessage(                messageId,                cimException,                QueueIdStack());        }        if (XmlReader::testStartTagOrEmptyTag(parser, entry, "IRETURNVALUE"))        {            if (entry.type != XmlEntry::EMPTY_TAG)            {                XmlReader::expectEndTag(parser, "IRETURNVALUE");            }        }    }    return new CIMSetPropertyResponseMessage(        messageId,

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?