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

📄 cqlvalue.cpp

📁 Pegasus is an open-source implementationof the DMTF CIM and WBEM standards. It is designed to be por
💻 CPP
📖 第 1 页 / 共 2 页
字号:
//%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.////==============================================================================//// Authors: David Rosckes (rosckes@us.ibm.com)//          Bert Rivero (hurivero@us.ibm.com)//          Chuck Carmack (carmack@us.ibm.com)//          Brian Lucier (lucier@us.ibm.com) //// Modified By:////%/////////////////////////////////////////////////////////////////////////////#include <cstdlib>#include <iostream>#include <Pegasus/Common/PegasusAssert.h> #include <Pegasus/Common/CIMObjectPath.h>  #include <Pegasus/Common/CIMDateTime.h>#include <Pegasus/Common/String.h>#include <Pegasus/Common/Array.h>#include <Pegasus/CQL/CQLValue.h>#include <Pegasus/CQL/CQLValueRep.h>#include <Pegasus/Common/CIMInstance.h>#include <Pegasus/Repository/CIMRepository.h>#include <Pegasus/Repository/RepositoryQueryContext.h>PEGASUS_USING_PEGASUS;PEGASUS_USING_STD;void drive_operation(){   // Uint64 tests      CQLValue a1(Uint64(10));   CQLValue a2(Uint64(15));   CQLValue a3(Uint64(25));   CQLValue a4(Uint64(30));   CQLValue a5(Uint64(150));   PEGASUS_TEST_ASSERT(a1 != a2);   PEGASUS_TEST_ASSERT(a5 == a5);   PEGASUS_TEST_ASSERT(a1 < a2);   PEGASUS_TEST_ASSERT(a2 >= a1);   PEGASUS_TEST_ASSERT(a1 <= a2);   PEGASUS_TEST_ASSERT(a2 > a1);    // Sint64 tests      CQLValue b1(Sint64(10));   CQLValue b2(Sint64(15));   CQLValue b3(Sint64(25));   CQLValue b4(Sint64(30));   CQLValue b5(Sint64(150));   PEGASUS_TEST_ASSERT(b1 != b2);   PEGASUS_TEST_ASSERT(b5 == b5);   PEGASUS_TEST_ASSERT(b1 < b2);   PEGASUS_TEST_ASSERT(b2 >= b1);   PEGASUS_TEST_ASSERT(b1 <= b2);   PEGASUS_TEST_ASSERT(b2 > b1);     // Real64 tests   CQLValue c1(Real64(10.00));   CQLValue c2(Real64(15.00));   CQLValue c3(Real64(25.00));   CQLValue c4(Real64(30.00));   CQLValue c5(Real64(150.00));   PEGASUS_TEST_ASSERT(c1 != c2);   PEGASUS_TEST_ASSERT(c5 == c5);   PEGASUS_TEST_ASSERT(c1 < c2);   PEGASUS_TEST_ASSERT(c2 >= c1);   PEGASUS_TEST_ASSERT(c1 <= c2);   PEGASUS_TEST_ASSERT(c2 > c1);   // Misc   PEGASUS_TEST_ASSERT(a1 == b1);   PEGASUS_TEST_ASSERT(a1 == c1);   PEGASUS_TEST_ASSERT(b1 == a1);   PEGASUS_TEST_ASSERT(b1 == c1);   PEGASUS_TEST_ASSERT(c1 == a1);   PEGASUS_TEST_ASSERT(c1 == b1);   PEGASUS_TEST_ASSERT(a2 != b1);   PEGASUS_TEST_ASSERT(a2 != c1);   PEGASUS_TEST_ASSERT(b2 != a1);   PEGASUS_TEST_ASSERT(b2 != c1);   PEGASUS_TEST_ASSERT(c2 != a1);   PEGASUS_TEST_ASSERT(c2 != b1);   PEGASUS_TEST_ASSERT(a2 >= b1);   PEGASUS_TEST_ASSERT(a2 >= c1);   PEGASUS_TEST_ASSERT(b2 >= a1);   PEGASUS_TEST_ASSERT(b2 >= c1);   PEGASUS_TEST_ASSERT(c2 >= a1);   PEGASUS_TEST_ASSERT(c2 >= b1);   PEGASUS_TEST_ASSERT(a2 <= b3);   PEGASUS_TEST_ASSERT(a2 <= c3);   PEGASUS_TEST_ASSERT(b2 <= a3);   PEGASUS_TEST_ASSERT(b2 <= c3);   PEGASUS_TEST_ASSERT(c2 <= a3);   PEGASUS_TEST_ASSERT(c2 <= b3);   PEGASUS_TEST_ASSERT(a2 > b1);   PEGASUS_TEST_ASSERT(a2 > c1);   PEGASUS_TEST_ASSERT(b2 > a1);   PEGASUS_TEST_ASSERT(b2 > c1);   PEGASUS_TEST_ASSERT(c2 > a1);   PEGASUS_TEST_ASSERT(c2 > b1);   PEGASUS_TEST_ASSERT(a2 < b3);   PEGASUS_TEST_ASSERT(a2 < c3);   PEGASUS_TEST_ASSERT(b2 < a3);   PEGASUS_TEST_ASSERT(b2 < c3);   PEGASUS_TEST_ASSERT(c2 < a3);   PEGASUS_TEST_ASSERT(c2 < b3);   //Overflow testing   CQLValue real1(Real64(0.00000001));   CQLValue sint1(Sint64(-1));   CQLValue uint1(Sint64(1));   CQLValue uint2(Uint64(0));   PEGASUS_TEST_ASSERT(uint1 > sint1);   PEGASUS_TEST_ASSERT(real1 > sint1);   PEGASUS_TEST_ASSERT(uint2 > sint1);   PEGASUS_TEST_ASSERT(real1 > uint2);   CQLValue real2(Real64(25.00000000000001));   CQLValue real3(Real64(24.99999999999999));   CQLValue sint2(Sint64(25));   CQLValue uint3(Uint64(25));   PEGASUS_TEST_ASSERT(real2 > real3);   PEGASUS_TEST_ASSERT(real2 > sint2);   PEGASUS_TEST_ASSERT(real2 > uint3);   PEGASUS_TEST_ASSERT(real3 < sint2);   PEGASUS_TEST_ASSERT(real3 < uint3);    // String tests   CQLValue d1(String("HELLO"));   CQLValue d2(String("HEL"));   CQLValue d3(String("LO"));   CQLValue d4(String("AHELLO"));   CQLValue d5(String("ZHELLO"));   String tmp1 =  d1.getString();   CQLValue tmp3 = d2+d3;   String tmp2 = tmp3.getString();   // cout  << tmp1 << endl;   //cout << tmp2 << endl;   PEGASUS_TEST_ASSERT(d1 == d2 + d3);   PEGASUS_TEST_ASSERT(d1 != d2 + d4);   PEGASUS_TEST_ASSERT(d1 <= d5);   PEGASUS_TEST_ASSERT(d1 <  d5);   PEGASUS_TEST_ASSERT(d1 >= d4);   PEGASUS_TEST_ASSERT(d1 >  d4);   String str1("0x10");   String str2("10");   String str3("10B");   String str4("10.10");      CQLValue e1( str1, CQLValue::Hex);   CQLValue e2( str2, CQLValue::Decimal);   CQLValue e3( str3, CQLValue::Binary);   CQLValue e4( str4, CQLValue::Real);   CQLValue e5(Uint64(16));   CQLValue e6(Uint64(10));   CQLValue e7(Uint64(2));   CQLValue e8(Real64(10.10));   PEGASUS_TEST_ASSERT(e1 == e5);   PEGASUS_TEST_ASSERT(e2 == e6);   PEGASUS_TEST_ASSERT(e3 == e7);   PEGASUS_TEST_ASSERT(e4 == e8);   Array<Uint64> array1;   array1.append(1);   array1.append(2);   array1.append(3);   array1.append(4);   array1.append(5);   array1.append(6);   array1.append(7);   array1.append(8);   array1.append(9);   array1.append(10); Array<Sint64> array2;   array2.append(1);   array2.append(2);   array2.append(3);   array2.append(4);   array2.append(5);   array2.append(6);   array2.append(7);   array2.append(8);   array2.append(9);   array2.append(10);   array2.append(3); Array<Real64> array3;   array3.append(1.00);   array3.append(2.00);   array3.append(3.00);   array3.append(9.00);   array3.append(10.00);   array3.append(3.00);   array3.append(4.00);   array3.append(5.00);   array3.append(6.00);   array3.append(7.00);   array3.append(8.00);   Array<Uint64> array4;   array4.append(1);   array4.append(23);   array4.append(3);   array4.append(4);   array4.append(5);   array4.append(6);   array4.append(7);   array4.append(88);   array4.append(9);   array4.append(10); Array<Sint64> array5;   array5.append(-1);   array5.append(2);   array5.append(3);   array5.append(4);   array5.append(5);   array5.append(-6);   array5.append(7);   array5.append(8);   array5.append(9);   array5.append(10);   array5.append(-3); Array<Real64> array6;   array6.append(1.23);   array6.append(2.00);   array6.append(3.00);   array6.append(9.00);   array6.append(10.00);   array6.append(3.00);   array6.append(4.14);   array6.append(5.00);   array6.append(6.00);   array6.append(7.00);   array6.append(8.00);   CIMValue cv1(array1);   CIMValue cv2(array2);   CIMValue cv3(array3);   CIMValue cv4(array4);   CIMValue cv5(array5);   CIMValue cv6(array6);    CQLValue vr1(cv1);   CQLValue vr2(cv1);   CQLValue vr3(cv2);   CQLValue vr4(cv3);   CQLValue vr5(cv4);   CQLValue vr6(cv5);   CQLValue vr7(cv6);    PEGASUS_TEST_ASSERT(vr1 == vr2);   PEGASUS_TEST_ASSERT(vr1 == vr3);   PEGASUS_TEST_ASSERT(vr1 == vr4);   PEGASUS_TEST_ASSERT(vr4 == vr3);   PEGASUS_TEST_ASSERT(vr1 != vr5);   PEGASUS_TEST_ASSERT(vr3 != vr6);   PEGASUS_TEST_ASSERT(vr4 != vr7);   const CIMName _cimName(String("CIM_OperatingSystem"));   CIMInstance _i1(_cimName);   CIMProperty _p1(CIMName("Description"),CIMValue(String("Dave Rules")));   CIMProperty _p2(CIMName("EnabledState"),CIMValue(Uint16(2)));   CIMProperty _p3(CIMName("CurrentTimeZone"),CIMValue(Sint16(-600)));   CIMProperty _p4(CIMName("TimeOfLastStateChange"),                  CIMValue(CIMDateTime(String("20040811105625.000000-360"))));                                       _i1.addProperty(_p1);

⌨️ 快捷键说明

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