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

Diff for /pegasus/src/Pegasus/Common/CIMType.h between version 1.8 and 1.36

version 1.8, 2001/07/10 06:43:24 version 1.36, 2008/12/01 17:49:50
Line 1 
Line 1 
 //%/////////////////////////////////////////////////////////////////////////////  //%LICENSE////////////////////////////////////////////////////////////////
 //  
 // Copyright (c) 2000, 2001 The Open group, BMC Software, Tivoli Systems, IBM  
 //  
 // 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.  
 // //
 //==============================================================================  // Licensed to The Open Group (TOG) under one or more contributor license
   // agreements.  Refer to the OpenPegasusNOTICE.txt file distributed with
   // this work for additional information regarding copyright ownership.
   // Each contributor licenses this file to you under the OpenPegasus Open
   // Source License; you may not use this file except in compliance with the
   // License.
   //
   // 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: Mike Brasher (mbrasher@bmc.com)  //////////////////////////////////////////////////////////////////////////
 //  
 // Modified By:  
 // //
 //%///////////////////////////////////////////////////////////////////////////// //%/////////////////////////////////////////////////////////////////////////////
  
 /*  
  CIMType.h - This file defines the CIMType enumeration which introduces  
 symbolic constants for the CIM data types.  
 */  
   
 #ifndef Pegasus_Type_h #ifndef Pegasus_Type_h
 #define Pegasus_Type_h #define Pegasus_Type_h
  
 #include <Pegasus/Common/Config.h> #include <Pegasus/Common/Config.h>
   #include <Pegasus/Common/Linkage.h>
  
 PEGASUS_NAMESPACE_BEGIN PEGASUS_NAMESPACE_BEGIN
  
 /** /**
     The CIMType Class defines the CIMType enumeration which introduces      The CIMType enumeration defines symbolic constants for the CIM data types.
     symbolic constants for the CIM data types.  
  
     The table below shows each CIM type, its symbolic constant, and its     The table below shows each CIM type, its symbolic constant, and its
     representation type.     representation type.
  
     <pre>     <pre>
             CIM CIMType Constant        C++ CIMType          CIM Type    CIMType Symbol       C++ Type
             -------------------------------------------------------          ----------------------------------------------
             boolean     CIMType::BOOLEAN        Boolean          boolean     CIMTYPE_BOOLEAN      Boolean
             uint8       CIMType::UINT8          Uint8          uint8       CIMTYPE_UINT8        Uint8
             sint8       CIMType::SINT8          Sint8          sint8       CIMTYPE_SINT8        Sint8
             uint16      CIMType::UINT16         Uint16          uint16      CIMTYPE_UINT16       Uint16
             sint16      CIMType::SINT16         Sint16          sint16      CIMTYPE_SINT16       Sint16
             uint32      CIMType::UINT32         Uint32          uint32      CIMTYPE_UINT32       Uint32
             sint32      CIMType::SINT32         Sint32          sint32      CIMTYPE_SINT32       Sint32
             uint64      CIMType::UINT64         Sint64          uint64      CIMTYPE_UINT64       Sint64
             sint64      CIMType::SINT64         Sint64          sint64      CIMTYPE_SINT64       Sint64
             real32      CIMType::REAL32         Real32          real32      CIMTYPE_REAL32       Real32
             real64      CIMType::REAL64         Real64          real64      CIMTYPE_REAL64       Real64
             char16      CIMType::CHAR16         Char16          char16      CIMTYPE_CHAR16       Char16
             string      CIMType::STRING         String          string      CIMTYPE_STRING       String
             datetime    CIMType::DATETIME       CIMDateTime          datetime    CIMTYPE_DATETIME     CIMDateTime
             reference   CIMType::REFERENCE      CIMReference          reference   CIMTYPE_REFERENCE    CIMObjectPath
           object      CIMTYPE_OBJECT       CIMObject (not a basic CIM type)
     </pre>     </pre>
 */ */
 class PEGASUS_COMMON_LINKAGE CIMType  
 {  
 public:  
  
     enum Tag  enum CIMType
     {     {
         NONE,      CIMTYPE_BOOLEAN,
         BOOLEAN,      CIMTYPE_UINT8,
         UINT8,      CIMTYPE_SINT8,
         SINT8,      CIMTYPE_UINT16,
         UINT16,      CIMTYPE_SINT16,
         SINT16,      CIMTYPE_UINT32,
         UINT32,      CIMTYPE_SINT32,
         SINT32,      CIMTYPE_UINT64,
         UINT64,      CIMTYPE_SINT64,
         SINT64,      CIMTYPE_REAL32,
         REAL32,      CIMTYPE_REAL64,
         REAL64,      CIMTYPE_CHAR16,
         CHAR16,      CIMTYPE_STRING,
         STRING,      CIMTYPE_DATETIME,
         DATETIME,      CIMTYPE_REFERENCE,
         REFERENCE      CIMTYPE_OBJECT,
     };      CIMTYPE_INSTANCE
   
     CIMType() : _tag(NONE) { }  
   
     CIMType(Tag tag) : _tag(tag) { }  
   
     PEGASUS_EXPLICIT CIMType(Uint32 tag) : _tag(Tag(tag)) { }  
   
     CIMType(const CIMType& x) : _tag(x._tag) { }  
   
     CIMType& operator=(Tag tag) { _tag = tag; return *this; }  
   
     operator Tag() const { return _tag; }  
   
     Boolean equal(const CIMType& x) const { return x._tag == _tag; }  
   
 private:  
   
     Tag _tag;  
 }; };
  
 inline Boolean operator==(CIMType x, CIMType y)  /**
 {      Gets a string representation of a CIMType.
     return CIMType::Tag(x) == CIMType::Tag(y);  
 }  
   
 inline Boolean operator!=(CIMType x, CIMType y)  
 {  
     return !operator==(x, y);  
 }  
   
 // ATTN: this doesn't seem necessary!  
   
 inline Boolean operator==(CIMType x, CIMType::Tag y)  
 {  
     return x.equal(y);  
 }  
   
 inline Boolean operator==(CIMType::Tag x, CIMType y)  
 {  
     return y.equal(x);  
 }  
   
 inline Boolean operator!=(CIMType x, CIMType::Tag y)  
 {  
     return !operator==(x, y);  
 }  
   
 inline Boolean operator!=(CIMType::Tag x, CIMType y)  
 {  
     return !operator==(x, y);  
 }  
   
 // Returns a string representation of the given type. The string  
 // is the same as the "CIM CIMType" column in the table above.  
  
 PEGASUS_COMMON_LINKAGE const char* TypeToString(CIMType type);      Note: the current implementation returns a string matching the first
       column in the table above, but that is subject to change in later
       revisions.
       @param type The CIMType to convert to string form.
       @return The string form of the specified CIMType.
   */
   PEGASUS_COMMON_LINKAGE const char * cimTypeToString (
       const CIMType type);
  
 PEGASUS_NAMESPACE_END PEGASUS_NAMESPACE_END
  
 #endif /* Pegasus_Type_h */ #endif /* Pegasus_Type_h */
   


Legend:
Removed from v.1.8  
changed lines
  Added in v.1.36

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2