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

Definition

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

Provides a multilevel switch to control tracing and debug output without recompiling your code.
Definition source_switch.h:31
Provides an abstract base class to create new debugging and tracing switches.
Definition switch_base.h:36
#define core_export_
Define shared library export.
Definition core_export.h:13
Inheritance
xtd::objectxtd::diagnostics::switch_basextd::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

void on_value_changed () override
 Invoked when the value of the value property changes.
 
- Protected Member Functions inherited from xtd::diagnostics::switch_base
 switch_base (const xtd::string &display_name, const xtd::string &description)
 Initializes a new instance of the switch_base class.
 
 switch_base (const xtd::string &display_name, const xtd::string &description, const xtd::string &default_switch_value)
 Initializes a new instance of the switch_base class.
 
int32 switch_setting () const noexcept
 Gets the current setting for this switch.
 
void switch_setting (int32 switch_setting)
 Sets the current setting for this switch.
 
const xtd::stringvalue () const noexcept
 Gets the value of the switch.
 
void value (const xtd::string &value)
 Sets the value of the switch.
 
virtual std::vector< xtd::stringget_supported_attributes () const noexcept
 Gets the custom attributes supported by the switch.
 
virtual void on_switch_setting_changed ()
 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

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

Public Methods

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

Additional Inherited Members

- Public Member Functions inherited from xtd::diagnostics::switch_base
const std::map< xtd::string, xtd::string > & attributes () const noexcept
 Gets the custom switch attributes.
 
std::map< xtd::string, xtd::string > & attributes () noexcept
 Gets the custom switch attributes.
 
void attributes (const std::map< xtd::string, xtd::string > &attributes) noexcept
 Sets the custom switch attributes.
 
const xtd::stringdescription () const noexcept
 Gets a description of the switch.
 
const xtd::stringdisplay_name () const noexcept
 Gets a name used to identify the switch.
 
bool equals (const switch_base &value) const noexcept override
 
virtual bool equals (const object &obj) const noexcept
 Determines whether the specified object is equal to the current object.
 
- Public Member Functions inherited from xtd::object
 object ()=default
 Create a new instance of the ultimate base class object.
 
virtual size_t 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<typename object_t >
xtd::uptr< object_t > memberwise_clone () const
 Creates a shallow copy of the current object.
 
virtual xtd::string to_string () const noexcept
 Returns a xtd::string that represents the current object.
 
- Public Member Functions inherited from xtd::iequatable< switch_base >
virtual bool equals (const switch_base &) const noexcept=0
 Indicates whether the current object is equal to another object of the same type.
 
- Static Public Member Functions inherited from xtd::diagnostics::switch_base
template<typename object_a_t , typename 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.
 
- Static Public Member Functions inherited from xtd::object
template<typename object_a_t , typename 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<typename object_a_t , typename 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]

xtd::diagnostics::source_levels xtd::diagnostics::source_switch::level ( ) const
noexcept

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]

void xtd::diagnostics::source_switch::level ( xtd::diagnostics::source_levels  level)

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()

bool xtd::diagnostics::source_switch::should_trace ( xtd::diagnostics::trace_event_type  event_type)
noexcept

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()

void xtd::diagnostics::source_switch::on_value_changed ( )
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_base.


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