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
00035 #ifndef OW_CIMPARAMVALUE_HPP_INCLUDE_GUARD_
00036 #define OW_CIMPARAMVALUE_HPP_INCLUDE_GUARD_
00037 #include "OW_config.h"
00038 #include "OW_COWIntrusiveReference.hpp"
00039 #include "OW_CIMBase.hpp"
00040 #include "OW_CIMFwd.hpp"
00041 #include "OW_CIMNULL.hpp"
00042 #include "OW_CIMName.hpp"
00043 #include <iosfwd>
00044
00045 namespace OW_NAMESPACE
00046 {
00047
00048 class OW_COMMON_API CIMParamValue : public CIMBase
00049 {
00050 public:
00051 struct Data;
00055 CIMParamValue();
00059 explicit CIMParamValue(CIMNULL_t);
00065 CIMParamValue(const CIMName& name, const CIMValue& val);
00070 explicit CIMParamValue(const CIMName& name);
00075 CIMParamValue(const CIMParamValue& arg);
00076
00080 ~CIMParamValue();
00086 CIMParamValue& operator = (const CIMParamValue& arg);
00087 String getName() const;
00088 CIMParamValue& setName(const CIMName& name);
00089 CIMValue getValue() const;
00090 CIMParamValue& setValue(const CIMValue& val);
00091
00092 typedef COWIntrusiveReference<Data> CIMParamValue::*safe_bool;
00096 operator safe_bool () const
00097 {
00098 return m_pdata ? &CIMParamValue::m_pdata : 0;
00099 }
00100 bool operator!() const
00101 {
00102 return !this->m_pdata;
00103 }
00108 virtual void readObject(std::istream &istrm);
00113 virtual void writeObject(std::ostream &ostrm) const;
00114 virtual void setNull();
00118 virtual String toString() const;
00122 virtual String toMOF() const;
00123 private:
00124
00125 #ifdef OW_WIN32
00126 #pragma warning (push)
00127 #pragma warning (disable: 4251)
00128 #endif
00129
00130 COWIntrusiveReference<Data> m_pdata;
00131
00132 #ifdef OW_WIN32
00133 #pragma warning (pop)
00134 #endif
00135
00136 friend OW_COMMON_API bool operator<(const CIMParamValue& x, const CIMParamValue& y);
00137 };
00138
00144 CIMValue getParamValue(const String& paramName, const CIMParamValueArray& params);
00145
00146
00147
00148 }
00149
00150 #endif