18 data = data ? data :
"(null)";
20 #if defined(_WIN32) && defined(__BORLANDC__) 21 stream << util::toWide(data);
34 #if PLOG_ENABLE_WCHAR_INPUT 37 data = data ? data : L
"(null)";
55 template<
class T,
class Stream>
58 template <
class T,
class Stream>
61 #ifdef __INTEL_COMPILER 62 # pragma warning(suppress: 327) // NULL reference is not allowed 64 enum { value =
sizeof(operator<<(*reinterpret_cast<Stream*>(0), *reinterpret_cast<const T*>(0))) !=
sizeof(char) };
67 template <
class Stream>
68 struct isStreamable<std::ios_base& (std::ios_base&), Stream>
70 enum { value =
true };
73 template <
class Stream,
size_t N>
74 struct isStreamable<wchar_t[N], Stream>
76 enum { value =
false };
79 template <
class Stream,
size_t N>
80 struct isStreamable<const wchar_t[N], Stream>
82 enum { value =
false };
85 template<
bool B,
class T =
void>
89 struct enableIf<true, T> {
typedef T type; };
93 inline typename meta::enableIf<meta::isStreamable<T, std::ostream>::value && !meta::isStreamable<T, std::wostream>::value,
void>::type
operator<<(std::wostringstream& stream,
const T& data)
95 std::ostringstream ss;
105 Record(
Severity severity,
const char* func,
size_t line,
const char* file,
const void*
object)
106 : m_severity(severity), m_tid(util::
gettid()), m_object(object), m_line(line), m_func(func), m_file(file)
121 char str[] = { data, 0 };
125 #if PLOG_ENABLE_WCHAR_INPUT 128 wchar_t str[] = { data, 0 };
147 return *
this << data.toStdWString();
149 return *
this << data.toStdString();
156 return *
this << qstr.append(data);
160 #ifdef __cplusplus_cli 163 cli::pin_ptr<const System::Char> ptr = PtrToStringChars(data);
164 return *this << static_cast<const wchar_t*>(ptr);
207 m_messageStr = m_message.str();
208 return m_messageStr.c_str();
214 return m_funcStr.c_str();
229 const unsigned int m_tid;
230 const void*
const m_object;
233 const char*
const m_func;
234 const char*
const m_file;
235 mutable std::string m_funcStr;
Definition: AndroidAppender.h:5
Record & operator<<(char data)
Definition: Record.h:119
virtual ~Record()
Definition: Record.h:222
std::string processFuncName(const char *func)
Definition: Util.h:184
char nchar
Definition: Util.h:59
virtual const char * getFunc() const
Definition: Record.h:211
virtual const void * getObject() const
Definition: Record.h:195
virtual const util::Time & getTime() const
Definition: Record.h:180
virtual const char * getFile() const
Definition: Record.h:217
std::ostringstream nostringstream
Definition: Util.h:57
virtual size_t getLine() const
Definition: Record.h:200
Record & operator<<(std::ostream &(*data)(std::ostream &))
Definition: Record.h:136
virtual Severity getSeverity() const
Definition: Record.h:185
std::string nstring
Definition: Util.h:56
void operator<<(util::nostringstream &stream, const char *data)
Definition: Record.h:16
Record & ref()
Definition: Record.h:111
unsigned int gettid()
Definition: Util.h:112
void operator<<(util::nostringstream &stream, const std::string &data)
Definition: Record.h:29
Record & operator<<(const T &data)
Definition: Record.h:169
Record(Severity severity, const char *func, size_t line, const char *file, const void *object)
Definition: Record.h:105
virtual unsigned int getTid() const
Definition: Record.h:190
void ftime(Time *t)
Definition: Util.h:102
virtual const util::nchar * getMessage() const
Definition: Record.h:205
Severity
Definition: Severity.h:5