(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.4 and 1.27

version 1.4, 2001/05/20 20:33:59 version 1.27, 2004/08/25 00:14:24
Line 1 
Line 1 
 //%/////////////////////////////////////////////////////////////////////////////  //%2003////////////////////////////////////////////////////////////////////////
 //  
 // Copyright (c) 2000 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 SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR  // Copyright (c) 2000, 2001, 2002  BMC Software, Hewlett-Packard Development
 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,  // Company, L. P., IBM Corp., The Open Group, Tivoli Systems.
 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL  // Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L. P.;
 // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER  // IBM Corp.; EMC Corporation, The Open Group.
 // 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  // Permission is hereby granted, free of charge, to any person obtaining a copy
 // DEALINGS IN THE SOFTWARE.  // 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 CIMType Constant        C++ CIMType
             -------------------------------------------------------             -------------------------------------------------------
             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
       </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() : _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)  /**
 {      Returns a string representation of the given type.
     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 REVIEWERS: Insert description here.
    */
   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.4  
changed lines
  Added in v.1.27

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2