📄 messageserializer.cpp
字号:
//%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 + -