This is the main header file of libcwd. More...
Go to the source code of this file.
Macros | |
#define | DEBUGCHANNELS |
The namespace containing the current debug channels (dc) namespace. More... | |
#define | Debug(STATEMENTS...) |
Encapsulation macro for general debugging code. More... | |
#define | Dout(cntrl, data) |
Macro for writing debug output. More... | |
#define | DoutFatal(cntrl, data) |
Macro for writing fatal debug output to the default debug object libcw_do . | |
#define | ForAllDebugChannels(STATEMENT...) |
Looping over all debug channels. More... | |
#define | ForAllDebugObjects(STATEMENT...) |
Looping over all debug objects. More... | |
This is the main header file of libcwd.
Don't include this header file directly. Instead use a custom debug.h header file that includes this file, that will allow others to compile your application without having libcwd installed.
#define Debug | ( | STATEMENTS... | ) |
Encapsulation macro for general debugging code.
The parameter of this macro can be arbitrary code that will be eliminated from the application when the macro CWDEBUG is not defined.
It uses the namespaces DEBUGCHANNELS and libcwd, making it unnecessary to use the the full scopes for debug channels and utility functions provided by libcwd.
Examples:
#define DEBUGCHANNELS |
The namespace containing the current debug channels (dc) namespace.
This macro is internally used by libcwd macros to include the chosen set of debug channels. For details please read section The Custom debug.h File.
#define Dout | ( | cntrl, | |
data | |||
) |
Macro for writing debug output.
This macro is used for writing debug output to the default debug object libcw_do . No code is generated when the macro CWDEBUG is not defined, in that case the macro Dout is replaced by white space.
The macro Dout uses libcwds debug object libcw_do . You will have to define your own macro when you want to use a second debug object. Read chapter Design Consideration Concerning Macros for an explanation of why a macro was used instead of an inline function.
Examples: