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 {
24 public:
26
33
37
39
43 virtual xtd::forms::icontrol_trace& control_trace() noexcept {return *control_trace_;}
48
50
52 void close() override { }
53
54 void flush() override {
55 #if !defined(NDEBUG) || defined(DEBUG) || defined(TRACE)
56 if (control_trace_) control_trace_->flush();
57 #endif
58 }
59
60 using trace_listener::write;
63 void write(const xtd::string& message) override {
64 #if !defined(NDEBUG) || defined(DEBUG) || defined(TRACE)
66 if (control_trace_) control_trace_->write(message);
67 #endif
68 }
69
70 using trace_listener::write_line;
73 void write_line(const xtd::string& message) override {
74 #if !defined(NDEBUG) || defined(DEBUG) || defined(TRACE)
75 //write(message + "\n");
77 if (control_trace_) control_trace_->write_line(message);
78 need_indent(true);
79 #endif
80 }
82
84
90
91 private:
92 xtd::forms::icontrol_trace* control_trace_ = nullptr;
93 };
94 }
95}
Represents text as a sequence of character units.
Definition basic_string.hpp:79
Provides the abstract base class for the listeners who monitor trace and debug output.
Definition trace_listener.hpp:37
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:337
Directs tracing or debugging output to a icontrol_trace object.
Definition control_trace_listener.hpp:23
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:31
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:52
virtual void control_trace(xtd::forms::icontrol_trace &control_trace)
Sets icontroll_trace object.
Definition control_trace_listener.hpp:46
virtual xtd::forms::icontrol_trace & control_trace() noexcept
Gets icontroll_trace object.
Definition control_trace_listener.hpp:43
static xtd::sptr< xtd::diagnostics::trace_listener > create(xtd::forms::icontrol_trace &control_trace)
Create new control_trace_listener.
Definition control_trace_listener.hpp:88
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:63
void flush() override
When overridden in a derived class, flushes the output buffer.
Definition control_trace_listener.hpp:54
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:73
Allow a control to be called by control_trace_listener for writing debug or trace message.
Definition icontrol_trace.hpp:22
virtual void write_line(const xtd::string &message)=0
Write debug or trace message on this instance control followed by line terminator.
virtual void write(const xtd::string &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.
Implements a Windows message.
Definition message.hpp:28
std::shared_ptr< type_t > sptr
The xtd::sptr object is a shared pointer.
Definition sptr.hpp:25
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.hpp:12
The xtd namespace contains all fundamental classes to access Hardware, Os, System,...
Definition xtd_about_box.hpp:10