CString.h++
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef __ccxx_CString_hxx
00024 #define __ccxx_CString_hxx
00025
00026 #include <commonc++/Common.h++>
00027
00028 namespace ccxx {
00029
00030 class AtomicCounter;
00031
00038 class COMMONCPP_API CString
00039 {
00040 public:
00041
00044 explicit CString(const char *str);
00045
00047 CString(const CString &other);
00048
00050 virtual ~CString() throw();
00051
00053 inline const char *data() const throw()
00054 { return(_str); }
00055
00057 size_t length() const throw();
00058
00060 inline operator const char *() const throw()
00061 { return(_str); }
00062
00064 CString & operator=(const CString &other);
00065
00067 inline bool isNull() const throw()
00068 { return(_str == NULL); }
00069
00070 private:
00071
00072 void _release() throw();
00073
00074 const char *_str;
00075 AtomicCounter *_refs;
00076 };
00077
00078 }
00079
00080 #endif // __ccxx_CString_hxx