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

📄 messageserializer.cpp

📁 Pegasus is an open-source implementationof the DMTF CIM and WBEM standards. It is designed to be por
💻 CPP
📖 第 1 页 / 共 5 页
字号:
//%2006//////////////////////////////////////////////////////////////////////////// Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development// Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.// Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.;// IBM Corp.; EMC Corporation, The Open Group.// Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;// IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.// Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;// EMC Corporation; VERITAS Software Corporation; The Open Group.// Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;// EMC Corporation; Symantec Corporation; The Open Group.//// Permission is hereby granted, free of charge, to any person obtaining a copy// of this software and associated documentation files (the "Software"), to// deal in the Software without restriction, including without limitation the// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or// sell copies of the Software, and to permit persons to whom the Software is// furnished to do so, subject to the following conditions:// // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN// ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED// "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT// LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.////==============================================================================//// Author: Roger Kumpf, Hewlett-Packard Company (roger_kumpf@hp.com)//// Modified By: David Dillard, VERITAS Software Corp.//                  (david.dillard@veritas.com)//              Jenny Yu, Hewlett-Packard Company (jenny.yu@hp.com)////%/////////////////////////////////////////////////////////////////////////////#include <cstdlib>#include <Pegasus/Common/PegasusAssert.h>#include <Pegasus/Common/System.h>#include <Pegasus/Common/OperationContextInternal.h>#include <Pegasus/Common/CIMMessageSerializer.h>#include <Pegasus/Common/CIMMessageDeserializer.h>PEGASUS_USING_PEGASUS;PEGASUS_USING_STD;static char * verbose;//// validateCIMPropertyList//void validateCIMPropertyList(    const CIMPropertyList& inPropertyList,    const CIMPropertyList& outPropertyList){    PEGASUS_TEST_ASSERT(        (inPropertyList.isNull() && outPropertyList.isNull()) ||        (!inPropertyList.isNull() && !outPropertyList.isNull()));    PEGASUS_TEST_ASSERT(inPropertyList.getPropertyNameArray() ==        outPropertyList.getPropertyNameArray());}//// validateCIMInstance//void validateCIMInstance(    const CIMInstance& inInstance,    const CIMInstance& outInstance){    if (inInstance.isUninitialized())    {        PEGASUS_TEST_ASSERT(outInstance.isUninitialized());    }    else    {        PEGASUS_TEST_ASSERT(inInstance.identical(outInstance));    }}//// validateCIMObjectPathArray//void validateCIMObjectPathArray(    const Array<CIMObjectPath>& inObjectPathArray,    const Array<CIMObjectPath>& outObjectPathArray){    PEGASUS_TEST_ASSERT(inObjectPathArray.size() == outObjectPathArray.size());    for (Uint32 i = 0, n = outObjectPathArray.size(); i < n; i++)    {        PEGASUS_TEST_ASSERT(inObjectPathArray[i] == outObjectPathArray[i]);    }}//// validateCIMNameArray//void validateCIMNameArray(    const Array<CIMName>& inNameArray,    const Array<CIMName>& outNameArray){    PEGASUS_TEST_ASSERT(inNameArray.size() == outNameArray.size());    for (Uint32 i = 0, n = outNameArray.size(); i < n; i++)    {        if (inNameArray[i].isNull())        {            PEGASUS_TEST_ASSERT(outNameArray[i].isNull());        }        else        {            PEGASUS_TEST_ASSERT(inNameArray[i] == outNameArray[i]);        }    }}//// validateCIMInstanceArray//void validateCIMInstanceArray(    const Array<CIMInstance>& inInstanceArray,    const Array<CIMInstance>& outInstanceArray){    PEGASUS_TEST_ASSERT(inInstanceArray.size() == outInstanceArray.size());    for (Uint32 i = 0, n = outInstanceArray.size(); i < n; i++)    {        if (inInstanceArray[i].isUninitialized())        {            PEGASUS_TEST_ASSERT(outInstanceArray[i].isUninitialized());        }        else        {            PEGASUS_TEST_ASSERT(                inInstanceArray[i].identical(outInstanceArray[i]));        }    }}//// validateCIMObjectArray//void validateCIMObjectArray(    const Array<CIMObject>& inObjectArray,    const Array<CIMObject>& outObjectArray){    PEGASUS_TEST_ASSERT(inObjectArray.size() == outObjectArray.size());    for (Uint32 i = 0, n = outObjectArray.size(); i < n; i++)    {        if (inObjectArray[i].isUninitialized())        {            PEGASUS_TEST_ASSERT(outObjectArray[i].isUninitialized());        }        else        {            PEGASUS_TEST_ASSERT(inObjectArray[i].identical(outObjectArray[i]));        }    }}//// validateCIMParamValueArray//void validateCIMParamValueArray(    const Array<CIMParamValue>& inParamValueArray,    const Array<CIMParamValue>& outParamValueArray){    PEGASUS_TEST_ASSERT(inParamValueArray.size() == outParamValueArray.size());    for (Uint32 i = 0, n = outParamValueArray.size(); i < n; i++)    {        if (inParamValueArray[i].isUninitialized())        {            PEGASUS_TEST_ASSERT(outParamValueArray[i].isUninitialized());        }        else        {            PEGASUS_TEST_ASSERT(inParamValueArray[i].getParameterName() ==                outParamValueArray[i].getParameterName());            PEGASUS_TEST_ASSERT(inParamValueArray[i].getValue() ==                outParamValueArray[i].getValue());            PEGASUS_TEST_ASSERT(inParamValueArray[i].isTyped() ==                outParamValueArray[i].isTyped());        }    }}//// validateOperationContext//void validateOperationContext(    const OperationContext& inOperationContext,    const OperationContext& outOperationContext){    try    {        const IdentityContainer inContainer =            inOperationContext.get(IdentityContainer::NAME);        try        {            const IdentityContainer outContainer =                outOperationContext.get(IdentityContainer::NAME);            PEGASUS_TEST_ASSERT(                inContainer.getUserName() == outContainer.getUserName());        }        catch(const Exception&)        {            PEGASUS_TEST_ASSERT(0);        }    }    catch(const Exception&)    {    }    try    {        const SubscriptionInstanceContainer inContainer =            inOperationContext.get(SubscriptionInstanceContainer::NAME);        try        {            const SubscriptionInstanceContainer outContainer =                outOperationContext.get(SubscriptionInstanceContainer::NAME);            validateCIMInstance(                inContainer.getInstance(), outContainer.getInstance());        }        catch(const Exception&)        {            PEGASUS_TEST_ASSERT(0);        }    }    catch(const Exception&)    {    }    try    {        const SubscriptionFilterConditionContainer inContainer =            inOperationContext.get(SubscriptionFilterConditionContainer::NAME);        try        {            const SubscriptionFilterConditionContainer outContainer =                outOperationContext.get(                    SubscriptionFilterConditionContainer::NAME);            PEGASUS_TEST_ASSERT(inContainer.getFilterCondition() ==                outContainer.getFilterCondition());            PEGASUS_TEST_ASSERT(inContainer.getQueryLanguage() ==                outContainer.getQueryLanguage());        }        catch(const Exception&)        {            PEGASUS_TEST_ASSERT(0);        }    }    catch(const Exception&)    {    }    try    {        const SubscriptionFilterQueryContainer inContainer =            inOperationContext.get(SubscriptionFilterQueryContainer::NAME);        try        {            const SubscriptionFilterQueryContainer outContainer =                outOperationContext.get(                    SubscriptionFilterQueryContainer::NAME);            PEGASUS_TEST_ASSERT(inContainer.getFilterQuery() ==                outContainer.getFilterQuery());            PEGASUS_TEST_ASSERT(inContainer.getQueryLanguage() ==                outContainer.getQueryLanguage());            PEGASUS_TEST_ASSERT(inContainer.getSourceNameSpace() ==                outContainer.getSourceNameSpace());        }        catch(const Exception&)        {            PEGASUS_TEST_ASSERT(0);        }    }    catch(const Exception&)    {    }    try    {        const SubscriptionInstanceNamesContainer inContainer =            inOperationContext.get(SubscriptionInstanceNamesContainer::NAME);        try        {            const SubscriptionInstanceNamesContainer outContainer =                outOperationContext.get(                    SubscriptionInstanceNamesContainer::NAME);            validateCIMObjectPathArray(                inContainer.getInstanceNames(),                outContainer.getInstanceNames());        }        catch(const Exception&)        {            PEGASUS_TEST_ASSERT(0);        }    }    catch(const Exception&)    {    }    try    {        const TimeoutContainer inContainer =            inOperationContext.get(TimeoutContainer::NAME);        try        {            const TimeoutContainer outContainer =                outOperationContext.get(TimeoutContainer::NAME);            PEGASUS_TEST_ASSERT(                inContainer.getTimeOut() == outContainer.getTimeOut());        }        catch(const Exception&)        {            PEGASUS_TEST_ASSERT(0);        }    }    catch(const Exception&)    {    }    try    {        const AcceptLanguageListContainer inContainer =            inOperationContext.get(AcceptLanguageListContainer::NAME);        try        {            const AcceptLanguageListContainer outContainer =                outOperationContext.get(AcceptLanguageListContainer::NAME);            PEGASUS_TEST_ASSERT(                inContainer.getLanguages() == outContainer.getLanguages());        }        catch(const Exception&)        {            PEGASUS_TEST_ASSERT(0);        }    }    catch(const Exception&)    {    }    try    {        const ContentLanguageListContainer inContainer =            inOperationContext.get(ContentLanguageListContainer::NAME);        try        {            const ContentLanguageListContainer outContainer =                outOperationContext.get(ContentLanguageListContainer::NAME);            PEGASUS_TEST_ASSERT(                inContainer.getLanguages() == outContainer.getLanguages());        }        catch(const Exception&)        {            PEGASUS_TEST_ASSERT(0);        }    }    catch(const Exception&)    {    }    try    {        const SnmpTrapOidContainer inContainer =            inOperationContext.get(SnmpTrapOidContainer::NAME);        try        {            const SnmpTrapOidContainer outContainer =                outOperationContext.get(SnmpTrapOidContainer::NAME);            PEGASUS_TEST_ASSERT(                inContainer.getSnmpTrapOid() == outContainer.getSnmpTrapOid());        }        catch(const Exception&)        {            PEGASUS_TEST_ASSERT(0);        }    }    catch(const Exception&)    {    }

⌨️ 快捷键说明

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