version 1.16, 2002/05/15 23:14:20
|
version 1.33, 2006/05/02 20:26:59
|
|
|
//%///////////////////////////////////////////////////////////////////////////// |
//%2006//////////////////////////////////////////////////////////////////////// |
// | // |
// Copyright (c) 2000, 2001 The Open group, BMC Software, Tivoli Systems, IBM |
// Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development |
|
// Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems. |
|
// Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.; |
|
// IBM Corp.; EMC Corporation, The Open Group. |
|
// Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.; |
|
// IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group. |
|
// Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.; |
|
// EMC Corporation; VERITAS Software Corporation; The Open Group. |
|
// Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.; |
|
// EMC Corporation; Symantec Corporation; The Open Group. |
// | // |
// Permission is hereby granted, free of charge, to any person obtaining a copy | // Permission is hereby granted, free of charge, to any person obtaining a copy |
// of this software and associated documentation files (the "Software"), to | // of this software and associated documentation files (the "Software"), to |
|
|
// | // |
//============================================================================== | //============================================================================== |
// | // |
// Author: Mike Brasher (mbrasher@bmc.com) |
|
// |
|
// Modified By: Ramnath Ravindran (Ramnath.Ravindran@compaq.com) |
|
// Roger Kumpf, Hewlett-Packard Company (roger_kumpf@hp.com) |
|
// |
|
//%///////////////////////////////////////////////////////////////////////////// | //%///////////////////////////////////////////////////////////////////////////// |
| |
/* |
|
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 CIMObjectPath |
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 |
|
#ifdef PEGASUS_USE_EXPERIMENTAL_INTERFACES |
|
#ifdef PEGASUS_EMBEDDED_INSTANCE_SUPPORT |
|
, CIMTYPE_INSTANCE |
|
#endif // PEGASUS_EMBEDDED_INSTANCE_SUPPORT |
|
#endif // PEGASUS_USE_EXPERIMENTAL_INTERFACES |
}; | }; |
| |
/// Constructor |
/** |
CIMType(); |
Gets a string representation of a CIMType. |
|
|
/// Constructor |
|
CIMType(Tag tag); |
|
|
|
#if 0 // ATTN-RK-P3-20020514: Why encourage/allow this? |
|
/// Constructor |
|
PEGASUS_EXPLICIT CIMType(Uint32 tag); |
|
#endif |
|
|
|
/// Constructor |
|
CIMType(const CIMType& x); |
|
|
|
/// operator = |
|
CIMType& operator=(Tag tag); |
|
|
|
/// |
|
operator Tag() const; |
|
|
|
/// |
|
Boolean equal(const CIMType& x) const; |
|
| |
/** Returns a string representation of the given type that may be useful |
Note: the current implementation returns a string matching the first |
for debugging. (Note: the current implementation returns a string |
column in the table above, but that is subject to change in later |
matching the first column in the table above, but that is subject to |
revisions. |
change in later revisions. |
@param type The CIMType to convert to string form. |
|
@return The string form of the specified CIMType. |
*/ | */ |
const char* toString() const; |
PEGASUS_COMMON_LINKAGE const char * cimTypeToString ( |
|
const CIMType type); |
private: |
|
|
|
Tag _tag; |
|
}; |
|
|
|
#if 0 // ATTN-RK-P3-20020514: These shouldn't be necessary because the |
|
// compiler can convert CIMType to CIMType::Tag automatically |
|
inline Boolean operator==(CIMType x, CIMType y) |
|
{ |
|
return CIMType::Tag(x) == CIMType::Tag(y); |
|
} |
|
|
|
inline Boolean operator!=(CIMType x, CIMType y) |
|
{ |
|
return !operator==(x, y); |
|
} |
|
#endif |
|
| |
PEGASUS_NAMESPACE_END | PEGASUS_NAMESPACE_END |
| |
#endif /* Pegasus_Type_h */ | #endif /* Pegasus_Type_h */ |
|
|