18#ifndef _LOG4CXX_HELPERS_TRANSCODER_H
19#define _LOG4CXX_HELPERS_TRANSCODER_H
33class LOG4CXX_EXPORT Transcoder
69 static unsigned int decode(
const std::string& str,
70 std::string::const_iterator& iter);
81 static unsigned int getCodePoint(
const std::string& str, std::string::const_iterator& pCodePoint);
86 static void encode(
unsigned int ch, std::string& dst);
105#if LOG4CXX_WCHAR_T_API || LOG4CXX_LOGCHAR_IS_WCHAR || defined(WIN32) || defined(_WIN32)
122 static unsigned int decode(
const std::wstring& str,
123 std::wstring::const_iterator& iter);
134 static unsigned int getCodePoint(
const std::wstring& str, std::wstring::const_iterator& pCodePoint);
139 static void encode(
unsigned int ch, std::wstring& dst);
145#if LOG4CXX_CFSTRING_API
172 Transcoder(
const Transcoder&);
173 Transcoder& operator=(
const Transcoder&);
178#if LOG4CXX_CHARSET_UTF8 && LOG4CXX_LOGCHAR_IS_UTF8
188#define LOG4CXX_ENCODE_CHAR(var, src) \
189 const std::string& var = src
200#define LOG4CXX_DECODE_CHAR(var, src) \
201 const LOG4CXX_NS::LogString& var = src
213#define LOG4CXX_ENCODE_CHAR(var, src) \
215 LOG4CXX_NS::helpers::Transcoder::encode(src, var)
226#define LOG4CXX_DECODE_CHAR(var, src) \
227 LOG4CXX_NS::LogString var; \
228 LOG4CXX_NS::helpers::Transcoder::decode(src, var)
240#define LOG4CXX_DECODE_CFSTRING(var, src) \
241 LOG4CXX_NS::LogString var; \
242 LOG4CXX_NS::helpers::Transcoder::decode(src, var)
253#define LOG4CXX_ENCODE_CFSTRING(var, src) \
254 CFStringRef var = LOG4CXX_NS::helpers::Transcoder::encode(src)
256#if LOG4CXX_LOGCHAR_IS_WCHAR
266#define LOG4CXX_ENCODE_WCHAR(var, src) \
267 const std::wstring& var = src
278#define LOG4CXX_DECODE_WCHAR(var, src) \
279 const LOG4CXX_NS::LogString& var = src
291#define LOG4CXX_ENCODE_WCHAR(var, src) \
293 LOG4CXX_NS::helpers::Transcoder::encode(src, var)
304#define LOG4CXX_DECODE_WCHAR(var, src) \
305 LOG4CXX_NS::LogString var; \
306 LOG4CXX_NS::helpers::Transcoder::decode(src, var)
An area of memory and a cursor into that memory.
Definition bytebuffer.h:42
static void encodeUTF16LE(unsigned int sv, ByteBuffer &dst)
Append the code point sv to dst as UTF-16LE.
static LogString decode(const char *str)
The LogString equivalent to the characters in the null terminated bytes at str.
@ LOSSCHAR
Definition log4cxx/helpers/transcoder.h:154
static void encodeUTF16BE(unsigned int sv, ByteBuffer &dst)
Append the code point sv to dst as UTF-16BE.
static void decode(const std::wstring &src, LogString &dst)
Append the LogString equivalent of src onto dst.
static void encode(const LogString &src, std::wstring &dst)
Append the equivalent of src onto dst.
static void encode(const LogString &src, std::string &dst)
Append the UTF8 equivalent of src onto dst.
static bool hasReplacementCharacter(const std::wstring &str)
Does str contain the Unicode replacement character.
static void encodeUTF8(const LogString &src, std::string &dst)
Append \src onto dst as a UTF-8 string.
static unsigned int decode(const std::wstring &str, std::wstring::const_iterator &iter)
Increment iter past the next code point in str.
static std::string encodeCharsetName(const LogString &charsetName)
Encodes a charset name in the default encoding without using a CharsetEncoder (which could trigger re...
static unsigned int decode(const std::string &str, std::string::const_iterator &iter)
Increment iter past the next code point in str.
static CFStringRef encode(const LogString &src)
A CFStringRef equivalent of src.
static void decodeUTF8(const std::string &src, LogString &dst)
Append the UTF-8 characters in src onto dst.
static bool hasReplacementCharacter(const std::string &str)
Does str contain the Unicode replacement character.
static void encode(unsigned int ch, std::wstring &dst)
Append the wchar_t equivalent to ch onto dst.
static unsigned int getCodePoint(const std::string &str, std::string::const_iterator &pCodePoint)
Increment pCodePoint past one str code point.
static void encode(unsigned int ch, std::string &dst)
Append the UTF8 equivalent to ch onto dst.
static unsigned int getCodePoint(const std::wstring &str, std::wstring::const_iterator &pCodePoint)
Increment pCodePoint past one str code point.
static void decode(const CFStringRef &src, LogString &dst)
Append the LogString equivalent of src onto dst.
static void decode(const std::string &src, LogString &dst)
Append the LogString equivalent of src onto dst.
static void encodeUTF8(unsigned int sv, ByteBuffer &dst)
Append the code point sv to dst as UTF-8.
static logchar decode(char ch)
The logchar equivalent to ch.
const struct __CFString * CFStringRef
Definition logstring.h:30
std::basic_string< logchar > LogString
Definition logstring.h:51