xtd - Reference Guide  0.1.0
Modern c++17/20 framework to create console, GUI and unit test applications on Windows, macOS, Linux, iOS and android.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
tracestreambuf.h
Go to the documentation of this file.
1
4#pragma once
5#include <iostream>
6#include "object.h"
7#include "diagnostics/trace.h"
8
10namespace xtd {
17 class tracestreambuf : public object, public std::stringbuf {
18 public:
19 int sync() override {
20#if defined(TRACE)
21 if (!str().empty()) {
22 if (str() == "\n") xtd::diagnostics::trace::write_line();
23 else if (ustring(str()).ends_with('\n')) xtd::diagnostics::trace::write_line(ustring(str()).trim_end('\n'));
25 str("");
26 }
27#endif
28 return 0;
29 }
30 };
31}
static void write_line()
Writes a line terminator to the trace listeners in the listeners collection.
Definition: trace.h:323
static void write(const xtd::ustring &message)
Writes a message to the trace listeners in the listeners collection.
Definition: trace.h:237
Supports all classes in the xtd class hierarchy and provides low-level services to derived classes....
Definition: object.h:26
Provides an std::stringbuf for xtd::diagnostics::trace.
Definition: tracestreambuf.h:17
Represents text as a sequence of UTF-8 code units.
Definition: ustring.h:48
The xtd namespace contains all fundamental classes to access Hardware, Os, System,...
Definition: system_report.h:17
Contains xtd::object class.
Contains xtd::diagnostics::trace class.