apt @VERSION@
Classes | Public Types | Public Member Functions

GlobalError Class Reference

List of all members.

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

bool FatalE (const char *Function, const char *Description,...) __like_printf(3) __cold
 add a fatal error message with errno to the list
bool Errno (const char *Function, const char *Description,...) __like_printf(3) __cold
 add an Error message with errno to the list
bool WarningE (const char *Function, const char *Description,...) __like_printf(3) __cold
 add a warning message with errno to the list
bool NoticeE (const char *Function, const char *Description,...) __like_printf(3) __cold
 add a notice message with errno to the list
bool DebugE (const char *Function, const char *Description,...) __like_printf(3) __cold
 add a debug message with errno to the list
bool InsertErrno (MsgType const &type, const char *Function, const char *Description,...) __like_printf(4) __cold
 adds an errno message with the given type
bool Fatal (const char *Description,...) __like_printf(2) __cold
 add an fatal error message to the list
bool Error (const char *Description,...) __like_printf(2) __cold
 add an Error message to the list
bool Warning (const char *Description,...) __like_printf(2) __cold
 add a warning message to the list
bool Notice (const char *Description,...) __like_printf(2) __cold
 add a notice message to the list
bool Debug (const char *Description,...) __like_printf(2) __cold
 add a debug message to the list
bool Insert (MsgType const &type, const char *Description,...) __like_printf(3) __cold
 adds an error message with the given type
bool PendingError () const
 is an error in the list?
bool empty (MsgType const &trashhold=WARNING) const
 is the list empty?
bool PopMessage (std::string &Text)
 returns and removes the first (or last) message in the list
void Discard ()
 clears the list of messages
void DumpErrors (std::ostream &out, MsgType const &threshold=WARNING, bool const &mergeStack=true)
 outputs the list of messages to the given stream
void DumpErrors (MsgType const &threshold)
 dumps the list of messages to std::cerr
void DumpErrors ()
 dumps the messages of type WARNING or higher to std::cerr
void PushToStack ()
 put the current Messages into the stack
void RevertToStack ()
 throw away all current messages
void MergeWithStack ()
 merge current and stack together
size_t StackCount () const
 return the deep of the stack

Member Enumeration Documentation

enum MsgType

a message can have one of following severity

Enumerator:
FATAL 

Message will be printed instantly as it is likely that this error will lead to a complete crash.

ERROR 

An error does hinder the correct execution and should be corrected.

WARNING 

indicates problem that can lead to errors later on

NOTICE 

deprecation warnings, old fallback behavior, …

DEBUG 

for developers only in areas it is hard to print something directly


Member Function Documentation

bool Debug ( const char *  Description,
  ... 
)

add a debug message to the list

Parameters:
DescriptionFormat string for the message
Returns:
false
bool DebugE ( const char *  Function,
const char *  Description,
  ... 
)

add a debug message with errno to the list

Parameters:
Functionname of the function generating the error
Descriptionformat string for the error message
Returns:
false
void 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.

Parameters:
[out]outoutput stream to write the messages in
thresholdminimim level considered
mergeStack
void DumpErrors ( MsgType const &  threshold) [inline]

dumps the list of messages to std::cerr

Note that all messages are discarded, also the notices displayed or not.

Parameters:
thresholdminimum level printed

References DumpErrors().

void 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().

bool empty ( MsgType const &  trashhold = WARNING) const

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.

Parameters:
WithoutNoticedoes notices count, default is true, so no
Returns:
true if an the list is empty, false otherwise
bool Errno ( const char *  Function,
const char *  Description,
  ... 
)

add an Error message with errno to the list

Parameters:
Functionname of the function generating the error
Descriptionformat string for the error message
Returns:
false
bool Error ( const char *  Description,
  ... 
)

add an Error message to the list

Parameters:
DescriptionFormat string for the error message.
Returns:
false
bool 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

Parameters:
DescriptionFormat string for the fatal error message.
Returns:
false
bool FatalE ( const char *  Function,
const char *  Description,
  ... 
)

add a fatal error message with errno to the list

Parameters:
Functionname of the function generating the error
Descriptionformat string for the error message
Returns:
false
bool Insert ( MsgType const &  type,
const char *  Description,
  ... 
)

adds an error message with the given type

Parameters:
typeof the error message
Descriptionof the error
bool InsertErrno ( MsgType const &  type,
const char *  Function,
const char *  Description,
  ... 
)

adds an errno message with the given type

Parameters:
typeof the error message
Functionwhich failed
Descriptionof the error
bool 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.

Parameters:
DescriptionFormat string for the message
Returns:
false
bool NoticeE ( const char *  Function,
const char *  Description,
  ... 
)

add a notice message with errno to the list

Parameters:
Functionname of the function generating the error
Descriptionformat string for the error message
Returns:
false
bool PendingError ( ) const [inline]

is an error in the list?

Returns:
true if an error is included in the list, false otherwise
bool PopMessage ( std::string &  Text)

returns and removes the first (or last) message in the list

Parameters:
[out]Textmessage of the first/last item
Returns:
true if the message was an error, false otherwise
void 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.

bool 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.

Parameters:
DescriptionFormat string for the message
Returns:
false
bool 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.

Parameters:
FunctionName of the function generates the warning.
DescriptionFormat string for the warning message.
Returns:
false

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