Main Page   Reference Manual   Namespace List   Compound List   Namespace Members   Compound Members   File Members  

Classes | Macros | Functions
Special Functions And Utilities
Collaboration diagram for Special Functions And Utilities:

Classes

class  libcwd::buf2str
 Print a (char) buffer with a given size to a debug ostream, escaping non-printable characters. More...
 
class  libcwd::char2str
 Print a char to a debug ostream, escaping non-printable characters as needed. More...
 
interface  libcwd::cwprint
 Print an object to a debug stream without needing an operator<<. More...
 
interface  libcwd::cwprint_using
 Print an object to an ostream using an arbitrary method of that object. More...
 

Macros

#define ForAllDebugChannels(STATEMENT...)
 Looping over all debug channels. More...
 
#define ForAllDebugObjects(STATEMENT...)
 Looping over all debug objects. More...
 

Functions

channel_ct * libcwd::find_channel (char const *label)
 Find debug channel with label label. More...
 
void libcwd::list_channels_on (debug_ct &debug_object)
 List all debug channels to a given debug object. More...
 

Detailed Description

Macro Definition Documentation

#define ForAllDebugChannels (   STATEMENT...)

Looping over all debug channels.

The macro ForAllDebugChannels allows you to run over all debug channels.

For example,

ForAllDebugChannels( while (!debugChannel.is_on()) debugChannel.on() );

which turns all channels on.  And

ForAllDebugChannels( if (debugChannel.is_on()) debugChannel.off() );

which turns all channels off.

#define ForAllDebugObjects (   STATEMENT...)

Looping over all debug objects.

The macro ForAllDebugObjects allows you to run over all debug objects.

For example,

ForAllDebugObjects( debugObject.set_ostream(&std::cerr, &cerr_mutex) );

would set the output stream of all debug objects to std::cerr.

Function Documentation

channel_ct * libcwd::find_channel ( char const *  label)

Find debug channel with label label.

Returns
A pointer to the debug channel object whose name starts with label.  If there is more than one such debug channel, the object with the lexicographically largest name is returned.  When no debug channel could be found, NULL is returned.
void libcwd::list_channels_on ( debug_ct &  debug_object)

List all debug channels to a given debug object.

Example:

Dout( list_channels_on(libcw_do) ); // libcw_do is the (default) debug object of libcwd.

Example of output:

DEBUG   : Disabled
NOTICE  : Enabled
WARNING : Enabled
SYSTEM  : Enabled
MALLOC  : Disabled
LLISTS  : Disabled
KERNEL  : Disabled
IO      : Disabled
FOO     : Enabled
BAR     : Enabled

Where FOO and BAR are user defined channels in this example.

References libcwd::channels::dc::always, libcwd::channels::dc::bfd, libcwd::channels::dc::malloc, libcwd::noprefix_cf, libcwd::channel_ct::off(), and libcwd::channel_ct::on().

Copyright © 2001 - 2004 Carlo Wood.  All rights reserved.