00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00036 #ifndef OW_CIMFLAVOR_HPP_INCLUDE_GUARD_
00037 #define OW_CIMFLAVOR_HPP_INCLUDE_GUARD_
00038 #include "OW_config.h"
00039 #include "OW_CIMBase.hpp"
00040 #include "OW_Types.hpp"
00041 #include <iosfwd>
00042
00043 namespace OW_NAMESPACE
00044 {
00045
00050 class OW_COMMON_API CIMFlavor : public CIMBase
00051 {
00052 public:
00053 enum Flavor
00054 {
00056 INVALID = 0,
00058 ENABLEOVERRIDE = 1,
00060 DISABLEOVERRIDE = 2,
00062 RESTRICTED = 3,
00064 TOSUBCLASS = 4,
00066 TRANSLATE = 5,
00067
00068 LASTVALUE = 6
00069 };
00076 static bool validFlavor(Int32 iflavor)
00077 {
00078 return(iflavor > INVALID && iflavor < LASTVALUE);
00079 }
00091 CIMFlavor(Flavor iflavor) :
00092 CIMBase(), m_flavor(iflavor)
00093 {
00094 if (!validFlavor(iflavor))
00095 {
00096 m_flavor = INVALID;
00097 }
00098 }
00102 CIMFlavor() :
00103 CIMBase(), m_flavor(INVALID) {}
00108 CIMFlavor(const CIMFlavor& arg) :
00109 CIMBase(), m_flavor(arg.m_flavor)
00110 {
00111 }
00112
00113 typedef Int32 CIMFlavor::*safe_bool;
00117 operator safe_bool () const
00118 { return (validFlavor(m_flavor) == true) ? &CIMFlavor::m_flavor : 0; }
00119 bool operator!() const
00120 { return !validFlavor(m_flavor); }
00124 virtual void setNull();
00131 CIMFlavor& operator= (const CIMFlavor& arg)
00132 {
00133 m_flavor = arg.m_flavor;
00134 return *this;
00135 }
00139 bool isValid()
00140 {
00141 return (m_flavor != INVALID);
00142 }
00143
00150 bool equals(const CIMFlavor& arg)
00151 {
00152 return (m_flavor == arg.m_flavor);
00153 }
00160 bool operator== (const CIMFlavor& arg)
00161 {
00162 return equals(arg);
00163 }
00170 bool operator!= (const CIMFlavor& arg)
00171 {
00172 return (equals(arg) == false);
00173 }
00178 virtual void readObject(std::istream &istrm);
00183 virtual void writeObject(std::ostream &ostrm) const;
00187 virtual String toString() const;
00192 virtual String toMOF() const;
00196 Int32 getFlavor() const { return m_flavor; }
00197 private:
00198 static bool validScope(Int32 iflavor)
00199 {
00200
00201
00202
00203 return(iflavor >= ENABLEOVERRIDE && iflavor < LASTVALUE);
00204 }
00206 Int32 m_flavor;
00207 friend bool operator<(const CIMFlavor& x, const CIMFlavor& y)
00208 {
00209 return x.m_flavor < y.m_flavor;
00210 }
00211 };
00212
00213 }
00214
00215 #endif