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
00094 StringPimpl() throw(Exception &);
00095
00110 StringPimpl(const char * const stringPimpl) throw(Exception &);
00111
00124 const char *c_str() const throw(Exception &);
00125
00137 bool empty() const throw(Exception &);
00138
00149 StringPimpl(const StringPimpl& stringPimpl);
00150
00161 StringPimpl &StringPimpl::operator=(const StringPimpl &stringPimpl);
00162
00171 virtual ~StringPimpl();
00172
00173 private:
00174
00185 void init(const char * const stringPimpl);
00186
00194 StringPrivate *m_pimpl;
00195 };
00196
00197 }
00198
00199
00200 using rebecca::impl::StringPimpl;
00201
00202 }
00203
00204 #ifdef _WIN32
00205 # pragma warning ( pop )
00206 #endif
00207
00208
00209
00210
00211
00212 #endif