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 #ifndef CEYLAN_UNICODE_H_
00028 #define CEYLAN_UNICODE_H_
00029
00030
00031 #include "CeylanTextDisplayable.h"
00032 #include "CeylanStringUtils.h"
00033
00034
00035
00042 namespace Ceylan
00043 {
00044
00045
00050 typedef Ceylan::Uint16 Unicode ;
00051
00052
00053
00068 class CEYLAN_DLL UnicodeString : public Ceylan::TextDisplayable
00069 {
00070
00071
00072 public:
00073
00074
00079 UnicodeString() ;
00080
00081
00082
00084 virtual ~UnicodeString() throw() ;
00085
00086
00087
00089 virtual StringSize size() const ;
00090
00091
00092
00101 virtual UnicodeString & copy( bool swap = false ) const ;
00102
00103
00104
00112 virtual void setFromLatin1( const std::string & latin1String ) ;
00113
00114
00115
00127 virtual void setFromUTF8( const std::string & utf8String,
00128 StringSize characterCount ) ;
00129
00130
00131
00142 virtual const std::string toString(
00143 Ceylan::VerbosityLevels level = Ceylan::high ) const ;
00144
00145
00146
00147
00148
00149
00151 static Unicode ConvertFromLatin1( Ceylan::Latin1Char latin1Char ) ;
00152
00153
00154
00155
00156 protected:
00157
00158
00159
00167 virtual void setCapacity( StringSize newSize ) ;
00168
00169
00170
00172 Unicode * _buffer ;
00173
00174
00175
00176
00177 private:
00178
00179
00188 UnicodeString( const UnicodeString & source ) ;
00189
00190
00199 UnicodeString & operator = ( const UnicodeString & source ) ;
00200
00201
00202 } ;
00203
00204
00205 }
00206
00207
00208
00209 #endif // CEYLAN_UNICODE_H_
00210