(file) Return to CMPI_SelectExpAccessor_WQL.cpp CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Pegasus / ProviderManager2 / CMPI

  1 konrad.r 1.1 //%2004////////////////////////////////////////////////////////////////////////
  2              //
  3              // Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development
  4              // Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.
  5              // Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.;
  6              // IBM Corp.; EMC Corporation, The Open Group.
  7              // Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
  8              // IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
  9              //
 10              // Permission is hereby granted, free of charge, to any person obtaining a copy
 11              // of this software and associated documentation files (the "Software"), to
 12              // deal in the Software without restriction, including without limitation the
 13              // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
 14              // sell copies of the Software, and to permit persons to whom the Software is
 15              // furnished to do so, subject to the following conditions:
 16              // 
 17              // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
 18              // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
 19              // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
 20              // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
 21              // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
 22 konrad.r 1.1 // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
 23              // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 24              // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 25              //
 26              //==============================================================================
 27              //
 28              // Author:      Adrian Schuur, schuur@de.ibm.com
 29              //
 30              // Modified By:
 31              //
 32              //%/////////////////////////////////////////////////////////////////////////////
 33              
 34              #include "CMPI_Version.h"
 35              
 36              #include "CMPI_SelectExpAccessor_WQL.h"
 37              #include <Pegasus/Provider/CMPI/cmpimacs.h>
 38              PEGASUS_NAMESPACE_BEGIN
 39              
 40              CMPI_SelectExpAccessor_WQL::CMPI_SelectExpAccessor_WQL(CMPIAccessor *acc, void *parm)
 41                 : accessor(acc), accParm(parm)
 42              {
 43 konrad.r 1.1 }
 44              
 45              Boolean CMPI_SelectExpAccessor_WQL::getValue(const CIMName& propertyName,
 46              	WQLOperand& value) const {
 47              
 48                 CMPIAccessor* get=(CMPIAccessor*) accessor;
 49                 CMPIData data=get(propertyName.getString().getCString(),accParm);
 50                 Boolean rv=true;
 51              
 52                 if (data.type & CMPI_ARRAY) {
 53                    rv=false;
 54                 }
 55              
 56                 else if ((data.type & (CMPI_UINT|CMPI_SINT))==CMPI_SINT) {
 57                    switch (data.type) {
 58                       case CMPI_sint32:
 59              	     value=WQLOperand(data.value.sint32, WQL_INTEGER_VALUE_TAG);
 60                       case CMPI_sint16:
 61              	     value=WQLOperand(data.value.sint16, WQL_INTEGER_VALUE_TAG);
 62                       case CMPI_sint8:
 63              	     value=WQLOperand(data.value.sint8, WQL_INTEGER_VALUE_TAG);
 64 konrad.r 1.1          case CMPI_sint64:
 65              	     value=WQLOperand(data.value.sint64, WQL_INTEGER_VALUE_TAG);
 66                       default: ;
 67                           rv=false;
 68                    }
 69                 }
 70              
 71                 else if (data.type==CMPI_chars)
 72                    value=WQLOperand(String(data.value.chars), WQL_STRING_VALUE_TAG);
 73                 else if (data.type==CMPI_string)
 74                    value=WQLOperand(String(CMGetCharsPtr(data.value.string,NULL)),
 75                         WQL_STRING_VALUE_TAG);
 76              
 77                 else if ((data.type & (CMPI_UINT|CMPI_SINT))==CMPI_UINT) {
 78                    switch (data.type) {
 79                       case CMPI_uint32:
 80              	     value=WQLOperand(data.value.sint32, WQL_INTEGER_VALUE_TAG);
 81                       case CMPI_uint16:
 82              	     value=WQLOperand(data.value.sint16, WQL_INTEGER_VALUE_TAG);
 83                       case CMPI_uint8:
 84              	     value=WQLOperand(data.value.sint32, WQL_INTEGER_VALUE_TAG);
 85 konrad.r 1.1          case CMPI_uint64:
 86              	     value=WQLOperand(data.value.sint64, WQL_INTEGER_VALUE_TAG);
 87                       default: ;
 88                          rv=false;
 89                    }
 90                 }
 91              
 92                 else switch (data.type) {
 93                    case CMPI_boolean:
 94              	  value=WQLOperand((Boolean)data.value.boolean, WQL_BOOLEAN_VALUE_TAG);
 95                    case CMPI_real32:
 96              	  value=WQLOperand(data.value.real32, WQL_DOUBLE_VALUE_TAG);
 97                    case CMPI_real64:
 98              	  value=WQLOperand(data.value.real64, WQL_DOUBLE_VALUE_TAG);
 99                    default:
100                          rv=false;
101                 }
102                 return rv;
103              }
104              
105              PEGASUS_NAMESPACE_END
106 konrad.r 1.1 

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2