xtd 0.2.0
Loading...
Searching...
No Matches
control_trace_listener.hpp
Go to the documentation of this file.
1
4#pragma once
5#include "icontrol_trace.hpp"
6#include <xtd/diagnostics/trace_listener>
7
9namespace xtd {
11 namespace forms {
30 public:
32
39
43
45
49 virtual xtd::forms::icontrol_trace& control_trace() noexcept {return *control_trace_;}
54
56
58 void close() override { }
59
60 void flush() override {
61 #if DEBUG || TRACE
62 if (control_trace_) control_trace_->flush();
63 #endif
64 }
65
66 using trace_listener::write;
69 void write(const xtd::string& message) override {
70 #if DEBUG || TRACE
72 if (control_trace_) control_trace_->write(message);
73 #endif
74 }
75
76 using trace_listener::write_line;
79 void write_line(const xtd::string& message) override {
80 #if DEBUG || TRACE
81 //write(message + "\n");
83 if (control_trace_) control_trace_->write_line(message);
84 need_indent(true);
85 #endif
86 }
87
88
90
96
97 private:
98 xtd::forms::icontrol_trace* control_trace_ = nullptr;
99 };
100 }
101}
Provides the abstract base class for the listeners who monitor trace and debug output.
Definition trace_listener.hpp:42
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.hpp:342
Directs tracing or debugging output to a icontrol_trace object.
Definition control_trace_listener.hpp:29
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.hpp:37
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.hpp:58
virtual void control_trace(xtd::forms::icontrol_trace &control_trace)
Sets icontroll_trace object.
Definition control_trace_listener.hpp:52
virtual xtd::forms::icontrol_trace & control_trace() noexcept
Gets icontroll_trace object.
Definition control_trace_listener.hpp:49
static xtd::sptr< xtd::diagnostics::trace_listener > create(xtd::forms::icontrol_trace &control_trace)
Create new control_trace_listener.
Definition control_trace_listener.hpp:94
void write(const xtd::string &message) override
Writes the message to the listener you create when you implement the trace_listener class.
Definition control_trace_listener.hpp:69
void flush() override
When overridden in a derived class, flushes the output buffer.
Definition control_trace_listener.hpp:60
void write_line(const xtd::string &message) override
Writes the message to the listener you create when you implement the trace_listener class.
Definition control_trace_listener.hpp:79
Allow a control to be called by control_trace_listener for writing debug or trace message.
Definition icontrol_trace.hpp:22
xtd::basic_string< char > string
Represents text as a sequence of UTF-8 code units.
Definition __string_definitions.hpp:43
xtd::shared_ptr_object< type_t > sptr
The xtd::sptr object is a shared pointer.
Definition sptr.hpp:25
sptr< type_t > new_sptr(args_t &&... args)
xtd::new_sptr operator creates a xtd::sptr object.
Definition new_sptr.hpp:24
Contains xtd::forms::icontrol_trace interface.
The xtd::forms namespace contains classes for creating Windows-based applications that take full adva...
Definition texts.hpp:219
The xtd namespace contains all fundamental classes to access Hardware, Os, System,...
Definition abstract_object.hpp:8
Implements a Windows message.
Definition message.hpp:33