xtd 0.2.0
Loading...
Searching...
No Matches
control_trace_listener.h
Go to the documentation of this file.
1
4#pragma once
5#include "icontrol_trace.h"
6#include <xtd/diagnostics/trace_listener>
7
9namespace xtd {
11 namespace forms {
22 public:
24
31
35
37
41 virtual xtd::forms::icontrol_trace& control_trace() noexcept {return *control_trace_;}
46
48
50 void close() override { }
51
52 void flush() override {
53 #if !defined(NDEBUG) || defined(DEBUG) || defined(TRACE)
54 if (control_trace_) control_trace_->flush();
55 #endif
56 }
57
58 using trace_listener::write;
61 void write(const xtd::ustring& message) override {
62 #if !defined(NDEBUG) || defined(DEBUG) || defined(TRACE)
64 if (control_trace_) control_trace_->write(message);
65 #endif
66 }
67
68 using trace_listener::write_line;
71 void write_line(const xtd::ustring& message) override {
72 #if !defined(NDEBUG) || defined(DEBUG) || defined(TRACE)
73 //write(message + "\n");
75 if (control_trace_) control_trace_->write_line(message);
76 need_indent(true);
77 #endif
78 }
80
82
86 static std::shared_ptr<xtd::diagnostics::trace_listener> create(xtd::forms::icontrol_trace& control_trace) {return std::make_shared<control_trace_listener>(control_trace);}
88
89 private:
90 xtd::forms::icontrol_trace* control_trace_ = nullptr;
91 };
92 }
93}
Provides the abstract base class for the listeners who monitor trace and debug output.
Definition trace_listener.h:35
bool need_indent() const noexcept
Gets a value indicating whether to indent the output.
virtual void write_indent()
Writes the indent to the listener you create when you implement this class, and resets the NeedIndent...
Definition trace_listener.h:335
Directs tracing or debugging output to a icontrol_trace object.
Definition control_trace_listener.h:21
control_trace_listener(xtd::forms::icontrol_trace &control_trace)
Initializes a new instance of the control_trace_listener class with specified control_trace.
Definition control_trace_listener.h:29
void close() override
When overridden in a derived class, closes the output stream so it no longer receives tracing or debu...
Definition control_trace_listener.h:50
virtual void control_trace(xtd::forms::icontrol_trace &control_trace)
Sets icontroll_trace object.
Definition control_trace_listener.h:44
void write(const xtd::ustring &message) override
Writes the message to the listener you create when you implement the trace_listener class.
Definition control_trace_listener.h:61
virtual xtd::forms::icontrol_trace & control_trace() noexcept
Gets icontroll_trace object.
Definition control_trace_listener.h:41
void write_line(const xtd::ustring &message) override
Writes the message to the listener you create when you implement the trace_listener class.
Definition control_trace_listener.h:71
static std::shared_ptr< xtd::diagnostics::trace_listener > create(xtd::forms::icontrol_trace &control_trace)
Create new control_trace_listener.
Definition control_trace_listener.h:86
void flush() override
When overridden in a derived class, flushes the output buffer.
Definition control_trace_listener.h:52
Allow a control to be called by control_trace_listener for writing debug or trace message.
Definition icontrol_trace.h:20
virtual void write(const xtd::ustring &message)=0
Write debug or trace message on this instance control.
virtual void flush()=0
Flushes the output buffer and causes buffered data to write to the control.
virtual void write_line(const xtd::ustring &message)=0
Write debug or trace message on this instance control followed by line terminator.
Implements a Windows message.
Definition message.h:26
Represents text as a sequence of UTF-8 code units.
Definition ustring.h:47
Contains xtd::forms::icontrol_trace interface.
The xtd::forms namespace contains classes for creating Windows-based applications that take full adva...
Definition xtd_about_box.h:12
The xtd namespace contains all fundamental classes to access Hardware, Os, System,...
Definition xtd_about_box.h:10