00001 #ifndef REBECCA_STRINGPIMPL_H
00002 #define REBECCA_STRINGPIMPL_H
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 #include <rebecca/exports.h>
00028
00029 #include <rebecca/Exceptions.h>
00030
00031
00032
00033
00034 #ifdef _WIN32
00035 # pragma warning ( push )
00036 # pragma warning( disable : 4290 )
00037 #endif
00038
00039
00040
00041 namespace rebecca
00042 {
00043
00044 namespace impl
00045 {
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056 class StringPrivate;
00057
00079 class REBECCA_EXPORT StringPimpl
00080 {
00081 public:
00082
00097 StringPimpl(const char * const stringPimpl) throw(Exception &);
00098
00111 const char *c_str() const throw(Exception &);
00112
00124 bool empty() const throw(Exception &);
00125
00136 StringPimpl(const StringPimpl& stringPimpl);
00137
00148 StringPimpl &StringPimpl::operator=(const StringPimpl &stringPimpl);
00149
00158 virtual ~StringPimpl();
00159
00160 private:
00161
00172 void init(const char * const stringPimpl);
00173
00181 StringPrivate *m_pimpl;
00182 };
00183
00184 }
00185
00186
00187 using rebecca::impl::StringPimpl;
00188
00189 }
00190
00191 #ifdef _WIN32
00192 # pragma warning ( pop )
00193 #endif
00194
00195
00196
00197
00198
00199 #endif