xtd 0.2.0
Loading...
Searching...
No Matches
xtd::diagnostics::source_switch Class Reference
Inheritance diagram for xtd::diagnostics::source_switch:
xtd::diagnostics::switch_object xtd::object xtd::iequatable< xtd::diagnostics::switch_object > xtd::interface xtd::extensions::equality_operators< xtd::diagnostics::switch_object, iequatable< xtd::diagnostics::switch_object > >

Definition

Provides a multilevel switch to control tracing and debug output without recompiling your code.

source_switch(const xtd::string &name)
Initializes a new instance of the source_switch class, specifying the name of the source.
Provides an abstract base class to create new debugging and tracing switches.
Definition switch_object.hpp:36
#define core_export_
Define shared library export.
Definition core_export.hpp:13
Inheritance
xtd::objectxtd::diagnostics::switch_objectxtd::diagnostics::source_switch
Header
#include <xtd/diagnostics/source_switch>
Namespace
xtd::diagnostics
Library
xtd.core
Remarks
The switch property of the trace_source class is a source_switch object. The source_switch class provides a level property to test the event level of the switch. The level property gets or sets the switch's trace_level value.
The switch is used to check whether a trace should be propagated or ignored. Each trace_source trace method calls the should_trace method before calling the listeners. If the should_trace method returns false, the trace is ignored and the trace method exits. If the should_trace method returns true, the trace is passed to the listeners.

Protected Member Functions

auto on_value_changed () -> void override
 Invoked when the value of the value property changes.
 
 switch_object (const xtd::string &display_name, const xtd::string &description)
 Initializes a new instance of the switch_object class.
 
auto switch_setting () const noexcept -> xtd::int32
 Gets the current setting for this switch.
 
auto switch_setting (xtd::int32 switch_setting) -> void
 Sets the current setting for this switch.
 
virtual auto get_supported_attributes () const noexcept -> xtd::array< xtd::string >
 Gets the custom attributes supported by the switch.
 
virtual auto on_switch_setting_changed () -> void
 Invoked when the switch_setting property is changed.
 

Public Constructors

 source_switch (const xtd::string &name)
 Initializes a new instance of the source_switch class, specifying the name of the source.
 
 source_switch (const xtd::string &display_name, const xtd::string &default_switch_value)
 Initializes a new instance of the source_switch class, specifying the display name and the default value for the source switch.
 

Public Properties

auto level () const noexcept -> xtd::diagnostics::source_levels
 Gets the level of the switch.
 
auto level (xtd::diagnostics::source_levels level) -> void
 Sets the level of the switch.
 

Public Methods

auto should_trace (xtd::diagnostics::trace_event_type event_type) noexcept -> bool
 Determines if trace listeners should be called, based on the trace event type.
 

Additional Inherited Members

using attribute_collection
 Represents the attributes collection.
 
auto attributes () const noexcept -> const attribute_collection &
 Gets the custom switch attributes.
 
auto attributes () noexcept -> attribute_collection &
 Gets the custom switch attributes.
 
auto attributes (const attribute_collection &attributes) noexcept -> void
 Sets the custom switch attributes.
 
auto description () const noexcept -> const xtd::string &
 Gets a description of the switch.
 
auto display_name () const noexcept -> const xtd::string &
 Gets a name used to identify the switch.
 
auto value () const noexcept -> const xtd::string &
 Gets the value of the switch.
 
auto value (const xtd::string &value) -> void
 Sets the value of the switch.
 
auto equals (const xtd::object &obj) const noexcept -> bool override
 Determines whether the specified object is equal to the current object.
 
auto equals (const switch_object &other) const noexcept -> bool override
 Determines whether the specified object is equal to the current object.
 
 object ()=default
 Create a new instance of the ultimate base class object.
 
virtual xtd::size get_hash_code () const noexcept
 Serves as a hash function for a particular type.
 
virtual type_object get_type () const noexcept
 Gets the type of the current instance.
 
template<class object_t>
xtd::unique_ptr_object< object_t > memberwise_clone () const
 Creates a shallow copy of the current object.
 
virtual xtd::string to_string () const
 Returns a xtd::string that represents the current object.
 
template<class object_a_t, class object_b_t>
static bool equals (const object_a_t &object_a, const object_b_t &object_b) noexcept
 Determines whether the specified object instances are considered equal.
 
template<class object_a_t, class object_b_t>
static bool reference_equals (const object_a_t &object_a, const object_b_t &object_b) noexcept
 Determines whether the specified object instances are the same instance.
 

Constructor & Destructor Documentation

◆ source_switch() [1/2]

xtd::diagnostics::source_switch::source_switch ( const xtd::string & name)
explicit

Initializes a new instance of the source_switch class, specifying the name of the source.

Parameters
nameThe name of the source.
Remarks
The name parameter is used to set the value of the display_name property.

◆ source_switch() [2/2]

xtd::diagnostics::source_switch::source_switch ( const xtd::string & display_name,
const xtd::string & default_switch_value )

Initializes a new instance of the source_switch class, specifying the display name and the default value for the source switch.

Parameters
display_nameThe name of the source.
default_switch_valueThe default value for the switch.
Remarks
The display_name parameter is used to set the value of the display_name property; the default_switch_value parameter is saved as a field and used to initialize the value property on first reference.

Member Function Documentation

◆ level() [1/2]

auto xtd::diagnostics::source_switch::level ( ) const -> xtd::diagnostics::source_levels
nodiscardnoexcept

Gets the level of the switch.

Returns
One of the SourceLevels values that represents the event level of the switch.
Remarks
This property gets its value from the switch_setting property. Setting this property also modifies the switch_setting property.

◆ level() [2/2]

auto xtd::diagnostics::source_switch::level ( xtd::diagnostics::source_levels level) -> void

Sets the level of the switch.

Parameters
levelOne of the SourceLevels values that represents the event level of the switch.
Remarks
This property gets its value from the switch_setting property. Setting this property also modifies the switch_setting property.

◆ should_trace()

auto xtd::diagnostics::source_switch::should_trace ( xtd::diagnostics::trace_event_type event_type) -> bool
nodiscardnoexcept

Determines if trace listeners should be called, based on the trace event type.

Parameters
event_typeOne of the trace_event_type values.
Returns
true if the trace listeners should be called; otherwise, false.
Remarks
This method is called by the trace methods in the trace_source class to determine whether listeners should be called to write a trace.
Note
Application code should not call this method; it is intended to be called only by methods in the trace_source class.

◆ on_value_changed()

auto xtd::diagnostics::source_switch::on_value_changed ( ) -> void
overrideprotectedvirtual

Invoked when the value of the value property changes.

Remarks
The on_value_changed method converts the new value of the value property to the integer representation of the matching field in the source_levels enumeration, and then uses this integer to set the switch_setting property.

Reimplemented from xtd::diagnostics::switch_object.


The documentation for this class was generated from the following file: