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

Diff for /pegasus/src/Pegasus/Common/CIMValue.cpp between version 1.40 and 1.43.14.1

version 1.40, 2002/08/21 00:15:44 version 1.43.14.1, 2003/08/13 19:39:50
Line 37 
Line 37 
 #include "Union.h" #include "Union.h"
 #include "Indentor.h" #include "Indentor.h"
 #include "XmlWriter.h" #include "XmlWriter.h"
   #include "CommonUTF.h"
  
 PEGASUS_NAMESPACE_BEGIN PEGASUS_NAMESPACE_BEGIN
  
Line 68 
Line 69 
  
 inline void _toString(Array<Sint8>& out, Char16 x) inline void _toString(Array<Sint8>& out, Char16 x)
 { {
     // ATTN: How to convert 16-bit characters to printable form?      // We need to convert the Char16 to UTF8 then append the UTF8
     out.append(Sint8(x));      // character into the array.
       // NOTE: The UTF8 character could be several bytes long.
       // WARNING: This function will put in replacement character for
       // all characters that have surogate pairs.
   
       char str[6];
       memset(str,0x00,sizeof(str));
       char* charIN = (char *)&x;
   
       const Uint16 *strsrc = (Uint16 *)charIN;
       Uint16 *endsrc = (Uint16 *)&charIN[1];
   
       Uint8 *strtgt = (Uint8 *)str;
       Uint8 *endtgt = (Uint8 *)&str[5];
   
       UTF16toUTF8(&strsrc,
                   endsrc,
                   &strtgt,
                   endtgt);
   
       out.append((Sint8 *)str,trailingBytesForUTF8[Uint32(str[0])]+1);
 } }
  
 inline void _toString(Array<Sint8>& out, const String& x) inline void _toString(Array<Sint8>& out, const String& x)
Line 435 
Line 456 
                 _rep->_u._referenceArray =                 _rep->_u._referenceArray =
                     new Array<CIMObjectPath>(*(x._rep->_u._referenceArray));                     new Array<CIMObjectPath>(*(x._rep->_u._referenceArray));
                 break;                 break;
   
             default:             default:
                 throw CIMValueInvalidTypeException();                  PEGASUS_ASSERT(false);
         }         }
     }     }
     else     else
Line 507 
Line 529 
  
             // Should never get here. testing complete enum             // Should never get here. testing complete enum
             default:             default:
                 throw CIMValueInvalidTypeException();                  PEGASUS_ASSERT(false);
         }         }
     }     }
 } }
  
 //ATTN: P1  KS Problem with Compiler when I added the defaults to clear, the compiler  
 // gets an exception very early.  Disabled the exceptions to keep compiler running for  
 // the minute. Note that the case statement is not complete. None missing.  
 void CIMValue::clear() void CIMValue::clear()
 { {
     if (_rep->_isArray)     if (_rep->_isArray)
Line 581 
Line 600 
                 delete _rep->_u._referenceArray;                 delete _rep->_u._referenceArray;
                 break;                 break;
  
             //default:              default:
                 //throw CIMValueInvalidTypeException();                  PEGASUS_ASSERT(false);
         }         }
     }     }
     else     else
Line 614 
Line 633 
             case CIMTYPE_REFERENCE:             case CIMTYPE_REFERENCE:
                 delete _rep->_u._referenceValue;                 delete _rep->_u._referenceValue;
                 break;                 break;
             //default:  
                 //throw CIMValueInvalidTypeException();              default:
                   PEGASUS_ASSERT(false);
         }         }
     }     }
  
Line 705 
Line 725 
         case CIMTYPE_REFERENCE:         case CIMTYPE_REFERENCE:
             return _rep->_u._referenceArray->size();             return _rep->_u._referenceArray->size();
             break;             break;
         // Should never get here. switch on complete enum  
         default:          //default:  // Handled below
             throw CIMValueInvalidTypeException();  
     }     }
  
     // Unreachable!     // Unreachable!
Line 787 
Line 806 
             case CIMTYPE_REFERENCE:             case CIMTYPE_REFERENCE:
                 set(Array<CIMObjectPath>(arraySize));                 set(Array<CIMObjectPath>(arraySize));
                 break;                 break;
   
             default:             default:
                 throw CIMValueInvalidTypeException();                  throw TypeMismatchException();
         }         }
     }     }
     else     else
Line 854 
Line 874 
             case CIMTYPE_REFERENCE:             case CIMTYPE_REFERENCE:
                 set(CIMObjectPath());                 set(CIMObjectPath());
                 break;                 break;
   
             default:             default:
                 throw CIMValueInvalidTypeException();                  throw TypeMismatchException();
         }         }
     }     }
  
Line 1125 
Line 1146 
     if (_rep->_type != CIMTYPE_BOOLEAN || _rep->_isArray)     if (_rep->_type != CIMTYPE_BOOLEAN || _rep->_isArray)
         throw TypeMismatchException();         throw TypeMismatchException();
  
       if (!_rep->_isNull)
     x = _rep->_u._booleanValue != 0;     x = _rep->_u._booleanValue != 0;
 } }
  
Line 1133 
Line 1155 
     if (_rep->_type != CIMTYPE_UINT8 || _rep->_isArray)     if (_rep->_type != CIMTYPE_UINT8 || _rep->_isArray)
         throw TypeMismatchException();         throw TypeMismatchException();
  
       if (!_rep->_isNull)
     x = _rep->_u._uint8Value;     x = _rep->_u._uint8Value;
 } }
  
Line 1141 
Line 1164 
     if (_rep->_type != CIMTYPE_SINT8 || _rep->_isArray)     if (_rep->_type != CIMTYPE_SINT8 || _rep->_isArray)
         throw TypeMismatchException();         throw TypeMismatchException();
  
       if (!_rep->_isNull)
     x = _rep->_u._sint8Value;     x = _rep->_u._sint8Value;
 } }
  
Line 1149 
Line 1173 
     if (_rep->_type != CIMTYPE_UINT16 || _rep->_isArray)     if (_rep->_type != CIMTYPE_UINT16 || _rep->_isArray)
         throw TypeMismatchException();         throw TypeMismatchException();
  
       if (!_rep->_isNull)
     x = _rep->_u._uint16Value;     x = _rep->_u._uint16Value;
 } }
  
Line 1157 
Line 1182 
     if (_rep->_type != CIMTYPE_SINT16 || _rep->_isArray)     if (_rep->_type != CIMTYPE_SINT16 || _rep->_isArray)
         throw TypeMismatchException();         throw TypeMismatchException();
  
       if (!_rep->_isNull)
     x = _rep->_u._sint16Value;     x = _rep->_u._sint16Value;
 } }
  
Line 1165 
Line 1191 
     if (_rep->_type != CIMTYPE_UINT32 || _rep->_isArray)     if (_rep->_type != CIMTYPE_UINT32 || _rep->_isArray)
         throw TypeMismatchException();         throw TypeMismatchException();
  
       if (!_rep->_isNull)
     x = _rep->_u._uint32Value;     x = _rep->_u._uint32Value;
 } }
  
Line 1173 
Line 1200 
     if (_rep->_type != CIMTYPE_SINT32 || _rep->_isArray)     if (_rep->_type != CIMTYPE_SINT32 || _rep->_isArray)
         throw TypeMismatchException();         throw TypeMismatchException();
  
       if (!_rep->_isNull)
     x = _rep->_u._sint32Value;     x = _rep->_u._sint32Value;
 } }
  
Line 1181 
Line 1209 
     if (_rep->_type != CIMTYPE_UINT64 || _rep->_isArray)     if (_rep->_type != CIMTYPE_UINT64 || _rep->_isArray)
         throw TypeMismatchException();         throw TypeMismatchException();
  
       if (!_rep->_isNull)
     x = _rep->_u._uint64Value;     x = _rep->_u._uint64Value;
 } }
  
Line 1189 
Line 1218 
     if (_rep->_type != CIMTYPE_SINT64 || _rep->_isArray)     if (_rep->_type != CIMTYPE_SINT64 || _rep->_isArray)
         throw TypeMismatchException();         throw TypeMismatchException();
  
       if (!_rep->_isNull)
     x = _rep->_u._sint64Value;     x = _rep->_u._sint64Value;
 } }
  
Line 1197 
Line 1227 
     if (_rep->_type != CIMTYPE_REAL32 || _rep->_isArray)     if (_rep->_type != CIMTYPE_REAL32 || _rep->_isArray)
         throw TypeMismatchException();         throw TypeMismatchException();
  
       if (!_rep->_isNull)
     x = _rep->_u._real32Value;     x = _rep->_u._real32Value;
 } }
  
Line 1205 
Line 1236 
     if (_rep->_type != CIMTYPE_REAL64 || _rep->_isArray)     if (_rep->_type != CIMTYPE_REAL64 || _rep->_isArray)
         throw TypeMismatchException();         throw TypeMismatchException();
  
       if (!_rep->_isNull)
     x = _rep->_u._real64Value;     x = _rep->_u._real64Value;
 } }
  
Line 1213 
Line 1245 
     if (_rep->_type != CIMTYPE_CHAR16 || _rep->_isArray)     if (_rep->_type != CIMTYPE_CHAR16 || _rep->_isArray)
         throw TypeMismatchException();         throw TypeMismatchException();
  
       if (!_rep->_isNull)
     x = _rep->_u._char16Value;     x = _rep->_u._char16Value;
 } }
  
Line 1221 
Line 1254 
     if (_rep->_type != CIMTYPE_STRING || _rep->_isArray)     if (_rep->_type != CIMTYPE_STRING || _rep->_isArray)
         throw TypeMismatchException();         throw TypeMismatchException();
  
       if (!_rep->_isNull)
     x = *_rep->_u._stringValue;     x = *_rep->_u._stringValue;
 } }
  
Line 1229 
Line 1263 
     if (_rep->_type != CIMTYPE_DATETIME || _rep->_isArray)     if (_rep->_type != CIMTYPE_DATETIME || _rep->_isArray)
         throw TypeMismatchException();         throw TypeMismatchException();
  
       if (!_rep->_isNull)
     x = *_rep->_u._dateTimeValue;     x = *_rep->_u._dateTimeValue;
 } }
  
Line 1237 
Line 1272 
     if (_rep->_type != CIMTYPE_REFERENCE || _rep->_isArray)     if (_rep->_type != CIMTYPE_REFERENCE || _rep->_isArray)
         throw TypeMismatchException();         throw TypeMismatchException();
  
       if (!_rep->_isNull)
     x = *_rep->_u._referenceValue;     x = *_rep->_u._referenceValue;
 } }
  
Line 1245 
Line 1281 
     if (_rep->_type != CIMTYPE_BOOLEAN || !_rep->_isArray)     if (_rep->_type != CIMTYPE_BOOLEAN || !_rep->_isArray)
         throw TypeMismatchException();         throw TypeMismatchException();
  
       if (!_rep->_isNull)
     x = *_rep->_u._booleanArray;     x = *_rep->_u._booleanArray;
 } }
  
Line 1253 
Line 1290 
     if (_rep->_type != CIMTYPE_UINT8 || !_rep->_isArray)     if (_rep->_type != CIMTYPE_UINT8 || !_rep->_isArray)
         throw TypeMismatchException();         throw TypeMismatchException();
  
       if (!_rep->_isNull)
     x = *_rep->_u._uint8Array;     x = *_rep->_u._uint8Array;
 } }
  
Line 1261 
Line 1299 
     if (_rep->_type != CIMTYPE_SINT8 || !_rep->_isArray)     if (_rep->_type != CIMTYPE_SINT8 || !_rep->_isArray)
         throw TypeMismatchException();         throw TypeMismatchException();
  
       if (!_rep->_isNull)
     x = *_rep->_u._sint8Array;     x = *_rep->_u._sint8Array;
 } }
  
Line 1269 
Line 1308 
     if (_rep->_type != CIMTYPE_UINT16 || !_rep->_isArray)     if (_rep->_type != CIMTYPE_UINT16 || !_rep->_isArray)
         throw TypeMismatchException();         throw TypeMismatchException();
  
       if (!_rep->_isNull)
     x = *_rep->_u._uint16Array;     x = *_rep->_u._uint16Array;
 } }
  
Line 1277 
Line 1317 
     if (_rep->_type != CIMTYPE_SINT16 || !_rep->_isArray)     if (_rep->_type != CIMTYPE_SINT16 || !_rep->_isArray)
         throw TypeMismatchException();         throw TypeMismatchException();
  
       if (!_rep->_isNull)
     x = *_rep->_u._sint16Array;     x = *_rep->_u._sint16Array;
 } }
  
Line 1285 
Line 1326 
     if (_rep->_type != CIMTYPE_UINT32 || !_rep->_isArray)     if (_rep->_type != CIMTYPE_UINT32 || !_rep->_isArray)
         throw TypeMismatchException();         throw TypeMismatchException();
  
       if (!_rep->_isNull)
     x = *_rep->_u._uint32Array;     x = *_rep->_u._uint32Array;
 } }
  
Line 1293 
Line 1335 
     if (_rep->_type != CIMTYPE_SINT32 || !_rep->_isArray)     if (_rep->_type != CIMTYPE_SINT32 || !_rep->_isArray)
         throw TypeMismatchException();         throw TypeMismatchException();
  
       if (!_rep->_isNull)
     x = *_rep->_u._sint32Array;     x = *_rep->_u._sint32Array;
 } }
  
Line 1301 
Line 1344 
     if (_rep->_type != CIMTYPE_UINT64 || !_rep->_isArray)     if (_rep->_type != CIMTYPE_UINT64 || !_rep->_isArray)
         throw TypeMismatchException();         throw TypeMismatchException();
  
       if (!_rep->_isNull)
     x = *_rep->_u._uint64Array;     x = *_rep->_u._uint64Array;
 } }
  
Line 1309 
Line 1353 
     if (_rep->_type != CIMTYPE_SINT64 || !_rep->_isArray)     if (_rep->_type != CIMTYPE_SINT64 || !_rep->_isArray)
         throw TypeMismatchException();         throw TypeMismatchException();
  
       if (!_rep->_isNull)
     x = *_rep->_u._sint64Array;     x = *_rep->_u._sint64Array;
 } }
  
Line 1317 
Line 1362 
     if (_rep->_type != CIMTYPE_REAL32 || !_rep->_isArray)     if (_rep->_type != CIMTYPE_REAL32 || !_rep->_isArray)
         throw TypeMismatchException();         throw TypeMismatchException();
  
       if (!_rep->_isNull)
     x = *_rep->_u._real32Array;     x = *_rep->_u._real32Array;
 } }
  
Line 1325 
Line 1371 
     if (_rep->_type != CIMTYPE_REAL64 || !_rep->_isArray)     if (_rep->_type != CIMTYPE_REAL64 || !_rep->_isArray)
         throw TypeMismatchException();         throw TypeMismatchException();
  
       if (!_rep->_isNull)
     x = *_rep->_u._real64Array;     x = *_rep->_u._real64Array;
 } }
  
Line 1333 
Line 1380 
     if (_rep->_type != CIMTYPE_CHAR16 || !_rep->_isArray)     if (_rep->_type != CIMTYPE_CHAR16 || !_rep->_isArray)
         throw TypeMismatchException();         throw TypeMismatchException();
  
       if (!_rep->_isNull)
     x = *_rep->_u._char16Array;     x = *_rep->_u._char16Array;
 } }
  
Line 1341 
Line 1389 
     if (_rep->_type != CIMTYPE_STRING || !_rep->_isArray)     if (_rep->_type != CIMTYPE_STRING || !_rep->_isArray)
         throw TypeMismatchException();         throw TypeMismatchException();
  
       if (!_rep->_isNull)
     x = *_rep->_u._stringArray;     x = *_rep->_u._stringArray;
 } }
  
 void CIMValue::get(Array<CIMDateTime>& x) const void CIMValue::get(Array<CIMDateTime>& x) const
 { {
 // ATTN-RK-20020815: Use UninitializedObjectException here if CIMValue is null?  
   
     if (_rep->_type != CIMTYPE_DATETIME || !_rep->_isArray)     if (_rep->_type != CIMTYPE_DATETIME || !_rep->_isArray)
         throw TypeMismatchException();         throw TypeMismatchException();
  
       if (!_rep->_isNull)
     x = *_rep->_u._dateTimeArray;     x = *_rep->_u._dateTimeArray;
 } }
  
Line 1359 
Line 1407 
     if (_rep->_type != CIMTYPE_REFERENCE || !_rep->_isArray)     if (_rep->_type != CIMTYPE_REFERENCE || !_rep->_isArray)
         throw TypeMismatchException();         throw TypeMismatchException();
  
       if (!_rep->_isNull)
     x = *_rep->_u._referenceArray;     x = *_rep->_u._referenceArray;
 } }
  
Line 1433 
Line 1482 
             case CIMTYPE_REFERENCE:             case CIMTYPE_REFERENCE:
                 return (*_rep->_u._referenceArray) ==                 return (*_rep->_u._referenceArray) ==
                     (*x._rep->_u._referenceArray);                     (*x._rep->_u._referenceArray);
   
             default:             default:
                 throw CIMValueInvalidTypeException();                  PEGASUS_ASSERT(false);
         }         }
     }     }
     else     else
Line 1489 
Line 1539 
                     *x._rep->_u._referenceValue;                     *x._rep->_u._referenceValue;
  
             default:             default:
                 throw CIMValueInvalidTypeException();                  PEGASUS_ASSERT(false);
         }         }
     }     }
  
Line 1592 
Line 1642 
                 break;                 break;
  
             default:             default:
                 throw CIMValueInvalidTypeException();                  PEGASUS_ASSERT(false);
         }         }
     }     }
     else     else
Line 1660 
Line 1710 
                 break;                 break;
  
             default:             default:
                 throw CIMValueInvalidTypeException();                  PEGASUS_ASSERT(false);
         }         }
     }     }
  


Legend:
Removed from v.1.40  
changed lines
  Added in v.1.43.14.1

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2