libcwdversion 2.0.0
The C++ Debugging Support Library
Loading...
Searching...
No Matches
Channel Class Reference

This object represents a debug channel, it has a fixed label. A debug channel can be viewed upon as a single bit: on or off. More...

#include <libcwd/debug.h>

Public Member Functions

 Channel (char const *label, bool add_to_channel_list=true)
 Construct a new debug channel with name label.
void off ()
 Turn this channel off.
void on ()
 Cancel one call to off().
char const * get_label () const
 Pointer to the label of the debug channel.
bool is_on () const
 Returns true if the channel is active.

Detailed Description

Whenever debug output is written, one or more debug channels must be specified (as first parameter of the Dout macro). The debug output is then written to the ostream of the debug object unless the debug object is turned off or when all specified debug channels are off. Each debug channel can be turned on and off independently.

Multiple debug channels can be given by using operator| between the channel names. This shouldn't be read as `or' but merely be seen as the bit-wise OR operation on the bit-masks that these channels actually represent.

Example:

Dout(dc::notice, "Libcwd is a great library");
#define Dout(cntrl,...)
Macro for writing debug output.
Definition debug.h:97
Channel notice
Definition debug.cxx:253

gives as result

NOTICE: Libcwd is a great library

and

Dout(dc::hello, "Hello World!");
Dout(dc::kernel|dc::io, "This is written when either the kernel"
"or io channel is turned on.");

gives as result

HELLO : Hello World! KERNEL: This is written when either the kernel or io channel is turned on.

Constructor & Destructor Documentation

◆ Channel()

libcwd::Channel::Channel ( char const * label,
bool add_to_channel_list = true )
inlineexplicit

A newly created channel is off by default (except dc::warning). All channel objects must be global objects.

See also
The Custom "debug.h" File

Member Function Documentation

◆ off()

See also
on()

◆ on()

The channel is turned on when on() is called as often as off() was called before.


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