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_CIMNAMESPACE_HPP_INCLUDE_GUARD_
00037 #define OW_CIMNAMESPACE_HPP_INCLUDE_GUARD_
00038 #include "OW_config.h"
00039 #include "OW_CIMBase.hpp"
00040 #include "OW_COWIntrusiveReference.hpp"
00041 #include "OW_CIMFwd.hpp"
00042 #include "OW_String.hpp"
00043 #include "OW_CIMNULL.hpp"
00044
00045 namespace OW_NAMESPACE
00046 {
00047
00055 class OW_COMMON_API CIMNameSpace : public CIMBase
00056 {
00057 private:
00058 struct NSData;
00059 friend bool operator<(const CIMNameSpace::NSData& x,
00060 const CIMNameSpace::NSData& y);
00061 public:
00065 CIMNameSpace();
00069 explicit CIMNameSpace(CIMNULL_t);
00076 CIMNameSpace(const CIMUrl& hostUrl,
00077 const String& nameSpace);
00084 explicit CIMNameSpace(const String& nameSpace);
00091 explicit CIMNameSpace(const char* nameSpace);
00096 CIMNameSpace(const CIMNameSpace& arg);
00100 ~CIMNameSpace();
00104 virtual void setNull();
00110 CIMNameSpace& operator= (const CIMNameSpace& arg);
00111
00112 typedef COWIntrusiveReference<NSData> CIMNameSpace::*safe_bool;
00113 operator safe_bool () const
00114 { return m_pdata ? &CIMNameSpace::m_pdata : 0; }
00115 bool operator!() const
00116 { return !m_pdata; }
00120 String getNameSpace() const;
00124 String getHost() const;
00128 CIMUrl getHostUrl() const;
00132 Int32 getPortNumber() const;
00136 String getProtocol() const;
00140 String getFileName() const;
00145 bool isLocal() const;
00151 CIMNameSpace& setNameSpace(const String& nameSpace);
00157 CIMNameSpace& setHostUrl(const CIMUrl& hostUrl);
00163 CIMNameSpace& setHost(const String& host);
00169 CIMNameSpace& setProtocol(const String& protocol);
00174 virtual void readObject(std::istream &istrm);
00179 virtual void writeObject(std::ostream &ostrm) const;
00183 virtual String toString() const;
00188 virtual String toMOF() const;
00189 private:
00190
00191 #ifdef OW_WIN32
00192 #pragma warning (push)
00193 #pragma warning (disable: 4251)
00194 #endif
00195
00196 COWIntrusiveReference<NSData> m_pdata;
00197
00198 #ifdef OW_WIN32
00199 #pragma warning (pop)
00200 #endif
00201
00202 friend OW_COMMON_API bool operator<(const CIMNameSpace& lhs, const CIMNameSpace& rhs);
00203 };
00204
00205 }
00206
00207 #endif