38 #ifndef _Wolframe_TYPES_STRING_HPP_INCLUDED
39 #define _Wolframe_TYPES_STRING_HPP_INCLUDED
43 #include <boost/shared_ptr.hpp>
73 String(
const void* content, std::size_t contentsize,
Encoding encoding_=
UTF8,
unsigned char codepage_=0);
76 String(
const std::string& val);
79 String(
const std::wstring& val);
94 static std::size_t ar[] = {1,1,2,2,2,2,4,4};
110 static const char* ar[] = {
"ISO8859",
"UTF-8",
"UTF-16BE",
"UTF-16LE",
"UCS-2BE",
"UCS-2LE",
"UCS-4BE",
"UCS-4LE"};
111 static const char* cp[] = {
"ISO8859-1",
"ISO8859-2",
"ISO8859-3",
"ISO8859-4",
"ISO8859-5",
"ISO8859-6",
"ISO8859-7",
"ISO8859-8",
"ISO8859-9"};
186 const wchar_t*
w_str()
const {
if ((
Encoding)
m_encoding !=
UTF16BE)
throw std::logic_error(
"cannot call w_str() for non UTF-16BE encoding");
return (
const wchar_t*)(
const void*)
m_ar;}
227 :
String(
ConstC,content,contentsize,encoding_,codepage_){}
UCS-4BE (only available with WITH_TEXTWOLF=1)
Definition: string.hpp:62
Definition: string.hpp:196
UTF-16LE (only available with WITH_TEXTWOLF=1)
Definition: string.hpp:59
const char * c_str() const
Get the base pointer of the string in case of a string in encoding UTF-8.
Definition: string.hpp:189
std::size_t m_size
number of elements in string
Definition: string.hpp:208
bool m_isconst
true, if the string is allocated
Definition: string.hpp:207
std::wstring towstring() const
Get the content of the string as std::wstring in UTF-16BE (wchar_t)
Structure namespace for the enumeration of supported encoding classes.
Definition: string.hpp:149
ConstQualifier
Definition: string.hpp:196
StringConst()
Constructor.
Definition: string.hpp:220
static EncodingClass::Id guessEncoding(const char *content, std::size_t size)
Guess the encoding from content.
Definition: string.hpp:153
Definition: string.hpp:153
Definition: string.hpp:153
static const char * encodingName(Encoding e, unsigned char c=0)
Map encoding to string.
Definition: string.hpp:108
String translateEncoding(Encoding encoding_, unsigned char codepage_=0) const
Translate this string into the encoding specified.
Definition: string.hpp:153
StringConst(const std::wstring &val)
Constructor from a reference to a std::string in UTF-16BE (wchar_t)
Definition: string.hpp:234
std::size_t elementSize() const
Get the size of an element (not equal to char size for a variable-width encodings) of this string...
Definition: string.hpp:99
Constant string that is not owned by the structure (caller has ownership)
Definition: string.hpp:215
Definition: string.hpp:153
const char * encodingName() const
Get the encoding of this string as string.
Definition: string.hpp:124
const void * ptr() const
Get the base pointer of the string in any encoding.
Definition: string.hpp:192
String()
Default constructor.
EncodingAttrib(Encoding encoding_=UTF8, unsigned char codepage_=0)
Definition: string.hpp:133
unsigned char codepage() const
Get the code page of this string in case of an ISO8859 encoding.
Definition: string.hpp:170
const wchar_t * w_str() const
Get the base pointer of the string in case of a string in encoding UTF-16BE (wchar_t) ...
Definition: string.hpp:186
std::size_t size() const
Get the size of the string in elements.
Definition: string.hpp:182
unsigned char m_codepage
codepage for ISO8859 encodings
Definition: string.hpp:206
UTF-8 (full range only with WITH_TEXTWOLF=1, range 0..127 otherwise)
Definition: string.hpp:57
Latin (full range only with WITH_TEXTWOLF=1, range 0..255 (code page 1) and range 0...
Definition: string.hpp:56
const char * encodingName() const
Get this encoding as string.
Definition: string.hpp:140
Encoding encoding() const
Get the encoding of this string.
Definition: string.hpp:167
Encoding
Encoding of a database string.
Definition: string.hpp:54
UCS-4LE (only available with WITH_TEXTWOLF=1)
Definition: string.hpp:63
unsigned char * m_ar
array of elements
Definition: string.hpp:209
StringConst(const String &o)
Copy constructor.
Definition: string.hpp:238
static EncodingAttrib getEncodingFromName(const std::string &name)
Parse the attributes of an encoding from an encoding name.
UCS-2BE (only available with WITH_TEXTWOLF=1)
Definition: string.hpp:60
StringConst(const std::string &val)
Constructor from a reference to a std::string in UTF-8.
Definition: string.hpp:230
std::string tostring() const
Get the content of the string as std::string in UTF-8.
UCS-2LE (only available with WITH_TEXTWOLF=1)
Definition: string.hpp:61
Definition: string.hpp:153
Attributes describing an encoding completely.
Definition: string.hpp:128
Definition: string.hpp:153
Encoding encoding
Definition: string.hpp:130
unsigned char codepage
Definition: string.hpp:131
Type for representing strings in various encodings.
Definition: string.hpp:49
UTF-16BE (full range only with WITH_TEXTWOLF=1, range 0..255 otherwise)
Definition: string.hpp:58
unsigned char m_encoding
encoding (type Encoding)
Definition: string.hpp:205
StringConst(const void *content, std::size_t contentsize, Encoding encoding_=UTF8, unsigned char codepage_=0)
Constructor.
Definition: string.hpp:226
static std::size_t elementSize(Encoding e)
Map encoding to sizeof element in string (not equal to char size for a variable-width encodings) ...
Definition: string.hpp:92
EncodingAttrib(const EncodingAttrib &o)
Definition: string.hpp:135
Id
Encoding class for guessing encoding.
Definition: string.hpp:153