#include <error.h>
Classes | |
struct | Item |
struct | MsgStack |
Public Types | |
enum | MsgType { FATAL = 40, ERROR = 30, WARNING = 20, NOTICE = 10, DEBUG = 0 } |
a message can have one of following severity More... | |
Public Member Functions | |
GlobalError () | |
bool | Debug (const char *Description,...) __like_printf(2) __cold |
add a debug message to the list More... | |
bool | DebugE (const char *Function, const char *Description,...) __like_printf(3) __cold |
add a debug message with errno to the list More... | |
void | Discard () |
clears the list of messages More... | |
void | DumpErrors (std::ostream &out, MsgType const &threshold=WARNING, bool const &mergeStack=true) |
outputs the list of messages to the given stream More... | |
void | DumpErrors (MsgType const &threshold) |
dumps the list of messages to std::cerr More... | |
void | DumpErrors () |
dumps the messages of type WARNING or higher to std::cerr More... | |
bool | empty (MsgType const &trashhold=WARNING) const |
is the list empty? More... | |
bool | Errno (const char *Function, const char *Description,...) __like_printf(3) __cold |
add an Error message with errno to the list More... | |
bool | Error (const char *Description,...) __like_printf(2) __cold |
add an Error message to the list More... | |
bool | Fatal (const char *Description,...) __like_printf(2) __cold |
add an fatal error message to the list More... | |
bool | FatalE (const char *Function, const char *Description,...) __like_printf(3) __cold |
add a fatal error message with errno to the list More... | |
bool | Insert (MsgType const &type, const char *Description,...) __like_printf(3) __cold |
adds an error message with the given type More... | |
bool | InsertErrno (MsgType const &type, const char *Function, const char *Description,...) __like_printf(4) __cold |
adds an errno message with the given type More... | |
void | MergeWithStack () |
merge current and stack together More... | |
bool | Notice (const char *Description,...) __like_printf(2) __cold |
add a notice message to the list More... | |
bool | NoticeE (const char *Function, const char *Description,...) __like_printf(3) __cold |
add a notice message with errno to the list More... | |
bool | PendingError () const |
is an error in the list? More... | |
bool | PopMessage (std::string &Text) |
returns and removes the first (or last) message in the list More... | |
void | PushToStack () |
put the current Messages into the stack More... | |
void | RevertToStack () |
throw away all current messages More... | |
size_t | StackCount () const |
return the deep of the stack More... | |
bool | Warning (const char *Description,...) __like_printf(2) __cold |
add a warning message to the list More... | |
bool | WarningE (const char *Function, const char *Description,...) __like_printf(3) __cold |
add a warning message with errno to the list More... | |
Private Member Functions | |
bool | Insert (MsgType type, const char *Description, va_list &args, size_t &msgSize) |
bool | InsertErrno (MsgType type, const char *Function, const char *Description, va_list &args, int const errsv, size_t &msgSize) |
Private Attributes | |
std::list< Item > | Messages |
bool | PendingFlag |
std::list< MsgStack > | Stacks |
enum GlobalError::MsgType |
a message can have one of following severity
GlobalError::GlobalError | ( | ) |
bool GlobalError::Debug | ( | const char * | Description, |
... | |||
) |
add a debug message to the list
Description | Format string for the message |
bool GlobalError::DebugE | ( | const char * | Function, |
const char * | Description, | ||
... | |||
) |
add a debug message with errno to the list
Function | name of the function generating the error |
Description | format string for the error message |
void GlobalError::Discard | ( | ) |
clears the list of messages
void GlobalError::DumpErrors | ( | std::ostream & | out, |
MsgType const & | threshold = WARNING , |
||
bool const & | mergeStack = true |
||
) |
outputs the list of messages to the given stream
Note that all messages are discarded, also the notices displayed or not.
[out] | out | output stream to write the messages in |
threshold | minimim level considered | |
mergeStack |
|
inline |
dumps the list of messages to std::cerr
Note that all messages are discarded, also the notices displayed or not.
threshold | minimum level printed |
References DumpErrors().
|
inline |
dumps the messages of type WARNING or higher to std::cerr
Note that all messages are discarded, displayed or not.
References WARNING.
Referenced by DumpErrors().
is the list empty?
The default checks if the list is empty or contains only notices, if you want to check if also no notices happend set the parameter flag to false.
WithoutNotice | does notices count, default is true, so no |
bool GlobalError::Errno | ( | const char * | Function, |
const char * | Description, | ||
... | |||
) |
add an Error message with errno to the list
Function | name of the function generating the error |
Description | format string for the error message |
bool GlobalError::Error | ( | const char * | Description, |
... | |||
) |
add an Error message to the list
Description | Format string for the error message. |
bool GlobalError::Fatal | ( | const char * | Description, |
... | |||
) |
add an fatal error message to the list
Most of the stuff we consider as "error" is also "fatal" for the user as the application will not have the expected result, but a fatal message here means that it gets printed directly to stderr in addiction to adding it to the list as the error leads sometimes to crashes and a maybe duplicated message is better than "Segfault" as the only displayed text
Description | Format string for the fatal error message. |
bool GlobalError::FatalE | ( | const char * | Function, |
const char * | Description, | ||
... | |||
) |
add a fatal error message with errno to the list
Function | name of the function generating the error |
Description | format string for the error message |
bool GlobalError::Insert | ( | MsgType const & | type, |
const char * | Description, | ||
... | |||
) |
adds an error message with the given type
type | of the error message |
Description | of the error |
|
private |
bool GlobalError::InsertErrno | ( | MsgType const & | type, |
const char * | Function, | ||
const char * | Description, | ||
... | |||
) |
adds an errno message with the given type
type | of the error message |
Function | which failed |
Description | of the error |
|
private |
void GlobalError::MergeWithStack | ( | ) |
merge current and stack together
bool GlobalError::Notice | ( | const char * | Description, |
... | |||
) |
add a notice message to the list
A notice should be considered less severe than an error or a warning and can be ignored by the client without further problems for some times, but he should consider fixing the problem. This error type can be used for e.g. deprecation warnings of options.
Description | Format string for the message |
bool GlobalError::NoticeE | ( | const char * | Function, |
const char * | Description, | ||
... | |||
) |
add a notice message with errno to the list
Function | name of the function generating the error |
Description | format string for the error message |
|
inline |
is an error in the list?
References PendingFlag.
bool GlobalError::PopMessage | ( | std::string & | Text | ) |
returns and removes the first (or last) message in the list
[out] | Text | message of the first/last item |
void GlobalError::PushToStack | ( | ) |
put the current Messages into the stack
All "old" messages will be pushed into a stack to them later back, but for now the Message query will be empty and performs as no messages were present before.
The stack can be as deep as you want - all stack operations will only operate on the last element in the stack.
void GlobalError::RevertToStack | ( | ) |
throw away all current messages
|
inline |
return the deep of the stack
References Stacks.
bool GlobalError::Warning | ( | const char * | Description, |
... | |||
) |
add a warning message to the list
A warning should be considered less severe than an error and may be ignored by the client.
Description | Format string for the message |
bool GlobalError::WarningE | ( | const char * | Function, |
const char * | Description, | ||
... | |||
) |
add a warning message with errno to the list
A warning should be considered less severe than an error and may be ignored by the client.
Function | Name of the function generates the warning. |
Description | Format string for the warning message. |
|
private |
|
private |
Referenced by PendingError().
|
private |
Referenced by StackCount().