semf
semf::Debug< T > Class Template Reference

Class helps debugging by publishing logging information through printf function. More...

#include <debug.h>

Inheritance diagram for semf::Debug< T >:
Inheritance graph
Collaboration diagram for semf::Debug< T >:
Collaboration graph

Public Member Functions

 Debug (T &object, DebugLevel level, const char *name)
 Adds an object to the list to get printed out for debug. More...
 
virtual ~Debug ()=default
 
void setEnabled (bool enable=true)
 Enables or disables the debugger output for a specific object. More...
 
void setDisabled (bool disable=true)
 Enables or disables the debugger output for a specific object. More...
 
- Public Member Functions inherited from semf::LinkedList< T >::Node
virtual ~Node ()=default
 
T * next () const
 Returns a pointer to the next element in a list. More...
 
void setNext (T *next)
 Sets a pointer to the next element in a list. More...
 
T * previous () const
 Returns a pointer to the previous element in a list. More...
 
void setPrevious (T *previous)
 Sets a pointer to the previous element in a list. More...
 
bool isInAList ()
 Returns if a node is part of a LinkedList. More...
 

Static Public Member Functions

static void debugClass (DebugLevel maxLevel)
 Activates debugging for all objects of the same type with a maximum level. More...
 
template<class... Args>
static void print (T &object, DebugLevel level, const char *name, const char *format, Args... args)
 Internal function - do not call directly. More...
 

Detailed Description

template<class T>
class semf::Debug< T >

Class helps debugging by publishing logging information through printf function.

For registering a class type for debugging use SEMF_DEBUG_ADD_CLASS(T, level). For debugging only single objects, use SEMF_DEBUG_ADD_OBJECT(object, level).

For printing information out, use SEMF_ERROR, SEMF_WARNING, SEMF_INFO, SEMF_DEBUG and SEMF_TRACE macros.

Definition at line 81 of file debug.h.

Constructor & Destructor Documentation

◆ Debug()

template<class T >
semf::Debug< T >::Debug ( T &  object,
DebugLevel  level,
const char *  name 
)

Adds an object to the list to get printed out for debug.

Parameters
objectObject to debug.
levelMaximum level to debug.
nameName of the object.

Definition at line 160 of file debug.h.

◆ ~Debug()

template<class T >
virtual semf::Debug< T >::~Debug ( )
virtualdefault

Member Function Documentation

◆ debugClass()

template<class T >
void semf::Debug< T >::debugClass ( DebugLevel  maxLevel)
static

Activates debugging for all objects of the same type with a maximum level.

Parameters
maxLevelMaximum level of logs to be not ignored.

Definition at line 169 of file debug.h.

◆ print()

template<class T >
template<class... Args>
void semf::Debug< T >::print ( T &  object,
DebugLevel  level,
const char *  name,
const char *  format,
Args...  args 
)
static

Internal function - do not call directly.

Use SEMF_ERROR, SEMF_WARNING, SEMF_INFO, SEMF_DEBUG and SEMF_TRACE macros.

Parameters
objectReference to the object from where the log is provided.
levelLevel of log message.
nameName of the class and function.
formatPrintf string format.
argsPrintf argument list.

Definition at line 189 of file debug.h.

Here is the caller graph for this function:

◆ setDisabled()

template<class T >
void semf::Debug< T >::setDisabled ( bool  disable = true)

Enables or disables the debugger output for a specific object.

Parameters
disabletrue for disable, false for enable.

Definition at line 182 of file debug.h.

◆ setEnabled()

template<class T >
void semf::Debug< T >::setEnabled ( bool  enable = true)

Enables or disables the debugger output for a specific object.

Parameters
enabletrue for enable, false for disable.

Definition at line 176 of file debug.h.