18#ifndef _LOG4CXX_HELPERS_TRANSCODER_H
19#define _LOG4CXX_HELPERS_TRANSCODER_H
32class LOG4CXX_EXPORT Transcoder
68 static unsigned int decode(
const std::string& str,
69 std::string::const_iterator& iter);
80 static unsigned int getCodePoint(
const std::string& str, std::string::const_iterator& pCodePoint);
85 static void encode(
unsigned int ch, std::string& dst);
104#if LOG4CXX_WCHAR_T_API || LOG4CXX_LOGCHAR_IS_WCHAR || defined(WIN32) || defined(_WIN32)
121 static unsigned int decode(
const std::wstring& str,
122 std::wstring::const_iterator& iter);
133 static unsigned int getCodePoint(
const std::wstring& str, std::wstring::const_iterator& pCodePoint);
138 static void encode(
unsigned int ch, std::wstring& dst);
144#if LOG4CXX_CFSTRING_API
171 Transcoder(
const Transcoder&);
172 Transcoder& operator=(
const Transcoder&);
177#if LOG4CXX_CHARSET_UTF8 && LOG4CXX_LOGCHAR_IS_UTF8
187#define LOG4CXX_ENCODE_CHAR(var, src) \
188 const std::string& var = src
199#define LOG4CXX_DECODE_CHAR(var, src) \
200 const LOG4CXX_NS::LogString& var = src
212#define LOG4CXX_ENCODE_CHAR(var, src) \
214 LOG4CXX_NS::helpers::Transcoder::encode(src, var)
225#define LOG4CXX_DECODE_CHAR(var, src) \
226 LOG4CXX_NS::LogString var; \
227 LOG4CXX_NS::helpers::Transcoder::decode(src, var)
239#define LOG4CXX_DECODE_CFSTRING(var, src) \
240 LOG4CXX_NS::LogString var; \
241 LOG4CXX_NS::helpers::Transcoder::decode(src, var)
252#define LOG4CXX_ENCODE_CFSTRING(var, src) \
253 CFStringRef var = LOG4CXX_NS::helpers::Transcoder::encode(src)
255#if LOG4CXX_LOGCHAR_IS_WCHAR
265#define LOG4CXX_ENCODE_WCHAR(var, src) \
266 const std::wstring& var = src
277#define LOG4CXX_DECODE_WCHAR(var, src) \
278 const LOG4CXX_NS::LogString& var = src
290#define LOG4CXX_ENCODE_WCHAR(var, src) \
292 LOG4CXX_NS::helpers::Transcoder::encode(src, var)
303#define LOG4CXX_DECODE_WCHAR(var, src) \
304 LOG4CXX_NS::LogString var; \
305 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:153
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