(file) Return to WQLInstancePropertySource.cpp CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Pegasus / WQL

  1 karl  1.4 //%2006////////////////////////////////////////////////////////////////////////
  2 schuur 1.1 //
  3 karl   1.2 // 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 schuur 1.1 // IBM Corp.; EMC Corporation, The Open Group.
  7 karl   1.2 // Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
  8            // IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
  9 karl   1.3 // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
 10            // EMC Corporation; VERITAS Software Corporation; The Open Group.
 11 karl   1.4 // Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
 12            // EMC Corporation; Symantec Corporation; The Open Group.
 13 schuur 1.1 //
 14            // Permission is hereby granted, free of charge, to any person obtaining a copy
 15            // of this software and associated documentation files (the "Software"), to
 16            // deal in the Software without restriction, including without limitation the
 17            // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
 18            // sell copies of the Software, and to permit persons to whom the Software is
 19            // furnished to do so, subject to the following conditions:
 20            // 
 21            // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
 22            // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
 23            // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
 24            // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
 25            // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
 26            // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
 27            // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 28            // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 29            //
 30            //==============================================================================
 31            //
 32            //%/////////////////////////////////////////////////////////////////////////////
 33            
 34 schuur 1.1 #include "WQLInstancePropertySource.h"
 35            #include <Pegasus/Common/CIMName.h>
 36            #include <Pegasus/Common/CIMInstance.h>
 37            
 38            PEGASUS_NAMESPACE_BEGIN
 39            
 40            Boolean WQLInstancePropertySource::getValue(
 41 karl   1.5     const CIMName& propertyName, 
 42                WQLOperand& value) const
 43 schuur 1.1 {
 44               unsigned int pos=ci.findProperty(propertyName);
 45               if (pos==PEG_NOT_FOUND) return false;
 46                
 47               CIMValue val=ci.getProperty(pos).getValue();
 48               CIMType type=val.getType();
 49               
 50 karl   1.5    if (val.isNull())
 51               {
 52 schuur 1.1       value=WQLOperand();
 53                  return true;
 54               }
 55               if (val.isArray()) return false;
 56               
 57 karl   1.5    switch (type)
 58               {
 59                   case CIMTYPE_UINT8:
 60                      Uint8 propertyValueUint8;
 61                      val.get(propertyValueUint8);
 62                      value=WQLOperand(propertyValueUint8,WQL_INTEGER_VALUE_TAG);
 63                      break;
 64                
 65                   case CIMTYPE_UINT16:
 66                      Uint16 propertyValueUint16;
 67                      val.get(propertyValueUint16);
 68                      value=WQLOperand(propertyValueUint16, WQL_INTEGER_VALUE_TAG);
 69                      break;
 70                
 71                   case CIMTYPE_UINT32:
 72                      Uint32 propertyValueUint32;
 73                      val.get(propertyValueUint32);
 74                      value=WQLOperand(propertyValueUint32, WQL_INTEGER_VALUE_TAG);
 75                      break;
 76                
 77                   case CIMTYPE_UINT64:
 78 karl   1.5           Uint64 propertyValueUint64;
 79                      val.get(propertyValueUint64);
 80                      value=WQLOperand(propertyValueUint64, WQL_INTEGER_VALUE_TAG);
 81                      break;
 82                
 83                   case CIMTYPE_SINT8:
 84                      Sint8 propertyValueSint8;
 85                      val.get(propertyValueSint8);
 86                      value=WQLOperand(propertyValueSint8, WQL_INTEGER_VALUE_TAG);
 87                      break;
 88                
 89                   case CIMTYPE_SINT16:
 90                      Sint16 propertyValueSint16;
 91                      val.get(propertyValueSint16);
 92                      value=WQLOperand(propertyValueSint16, WQL_INTEGER_VALUE_TAG);
 93                      break;
 94                
 95                   case CIMTYPE_SINT32:
 96                      Sint32 propertyValueSint32;
 97                      val.get(propertyValueSint32);
 98                      value=WQLOperand(propertyValueSint32, WQL_INTEGER_VALUE_TAG);
 99 karl   1.5           break;
100                
101                   case CIMTYPE_SINT64:
102                      Sint64 propertyValueSint64;
103                      val.get(propertyValueSint64);
104                      value=WQLOperand(propertyValueSint64, WQL_INTEGER_VALUE_TAG);
105                      break;
106                
107                   case CIMTYPE_REAL32:
108                      Real32 propertyValueReal32;
109                      val.get(propertyValueReal32);
110                      value=WQLOperand(propertyValueReal32, WQL_DOUBLE_VALUE_TAG);
111                      break;
112                
113                   case CIMTYPE_REAL64:
114                      Real64 propertyValueReal64;
115                      val.get(propertyValueReal64);
116                      value=WQLOperand(propertyValueReal64, WQL_DOUBLE_VALUE_TAG);
117                      break;
118                
119                   case CIMTYPE_BOOLEAN :
120 karl   1.5           Boolean booleanValue;
121                      val.get(booleanValue);
122                      value=WQLOperand(booleanValue, WQL_BOOLEAN_VALUE_TAG);
123                      break;
124                
125                   case CIMTYPE_CHAR16:
126                   case CIMTYPE_DATETIME :
127                   case CIMTYPE_STRING : 
128                   {
129                      String strValue;
130                      val.get(strValue);
131                      value=WQLOperand(strValue,WQL_STRING_VALUE_TAG);
132                      break;
133                   }
134                   default: return false;   
135 schuur 1.1    }
136               return true;
137 karl   1.5  }  
138 schuur 1.1 
139            PEGASUS_NAMESPACE_END

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2