apt 3.0.3
commandline package manager
Classes | Public Types | Public Member Functions | Friends | List of all members
GlobalError Class Reference

Public Types

enum  MsgType {
  FATAL = 40 , ERROR = 30 , WARNING = 20 , NOTICE = 10 ,
  AUDIT = 5 , DEBUG = 0
}
 a message can have one of following severity More...
 

Public Member Functions

bool FatalE (const char *Function, const char *Description,...) APT_PRINTF(3) APT_COLD
 add a fatal error message with errno to the list
 
bool Errno (const char *Function, const char *Description,...) APT_PRINTF(3) APT_COLD
 add an Error message with errno to the list
 
bool WarningE (const char *Function, const char *Description,...) APT_PRINTF(3) APT_COLD
 add a warning message with errno to the list
 
bool NoticeE (const char *Function, const char *Description,...) APT_PRINTF(3) APT_COLD
 add a notice message with errno to the list
 
bool AuditE (const char *Function, const char *Description,...) APT_PRINTF(3) APT_COLD
 add an audit message with errno to the list
 
bool DebugE (const char *Function, const char *Description,...) APT_PRINTF(3) APT_COLD
 add a debug message with errno to the list
 
bool InsertErrno (MsgType const &type, const char *Function, const char *Description,...) APT_PRINTF(4) APT_COLD
 adds an errno message with the given type
 
bool InsertErrno (MsgType type, const char *Function, const char *Description, va_list &args, int const errsv, size_t &msgSize) APT_COLD
 adds an errno message with the given type
 
bool Fatal (const char *Description,...) APT_PRINTF(2) APT_COLD
 add an fatal error message to the list
 
bool Error (const char *Description,...) APT_PRINTF(2) APT_COLD
 add an Error message to the list
 
bool Warning (const char *Description,...) APT_PRINTF(2) APT_COLD
 add a warning message to the list
 
bool Notice (const char *Description,...) APT_PRINTF(2) APT_COLD
 add a notice message to the list
 
bool Audit (const char *Description,...) APT_PRINTF(2) APT_COLD
 add an audit message to the list
 
bool Debug (const char *Description,...) APT_PRINTF(2) APT_COLD
 add a debug message to the list
 
bool Insert (MsgType const &type, const char *Description,...) APT_PRINTF(3) APT_COLD
 adds an error message with the given type
 
bool Insert (MsgType type, const char *Description, va_list &args, size_t &msgSize) APT_COLD
 adds an error message with the given type
 
bool PendingError () const APT_PURE
 is an error in the list?
 
bool empty (MsgType const &threshold=WARNING) const APT_PURE
 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 APT_PURE
 return the deep of the stack
 

Friends

APT_HIDDEN friend std::ostream & operator<< (std::ostream &out, Item i)
 

Member Enumeration Documentation

◆ MsgType

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, …

AUDIT 

future deprecation warnings, divergence from best practices

DEBUG 

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

Member Function Documentation

◆ Audit()

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

add an audit message to the list

An audit message highlights divergences from best practices and future deprecations. It my for example include additional messages targeted at repository owners.

Parameters
DescriptionFormat string for the message
Returns
false

◆ AuditE()

bool AuditE ( const char *  Function,
const char *  Description,
  ... 
)

add an audit message with errno to the list

Parameters
Functionname of the function generating the error
Descriptionformat string for the error message
Returns
false

◆ Debug()

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

add a debug message to the list

Parameters
DescriptionFormat string for the message
Returns
false

◆ DebugE()

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

◆ DumpErrors() [1/3]

void DumpErrors ( )
inline

dumps the messages of type WARNING or higher to std::cerr

Note that all messages are discarded, displayed or not.

◆ DumpErrors() [2/3]

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

◆ DumpErrors() [3/3]

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, even undisplayed ones.

Parameters
[out]outoutput stream to write the messages in
thresholdminimum level considered
mergeStackif true recursively dumps the entire stack

References Discard().

◆ empty()

bool empty ( MsgType const &  threshold = WARNING) const

is the list empty?

Can be used to check if the current stack level doesn't include anything equal or more severe than a given threshold, defaulting to warning level for historic reasons.

Parameters
thresholdminimum level considered
Returns
true if the list is empty, false otherwise

◆ Errno()

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

◆ Error()

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

add an Error message to the list

Parameters
DescriptionFormat string for the error message.
Returns
false

◆ Fatal()

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 addition 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

◆ FatalE()

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

◆ Insert() [1/2]

ERROR NOTICE DEBUG bool Insert ( MsgType const &  type,
const char *  Description,
  ... 
)

adds an error message with the given type

Parameters
typeof the error message
Descriptionof the error

References Insert().

Referenced by Insert(), and InsertErrno().

◆ Insert() [2/2]

bool Insert ( MsgType  type,
const char *  Description,
va_list &  args,
size_t &  msgSize 
)

adds an error message with the given type

args needs to be initialized with va_start and terminated with va_end by the caller. msgSize is also an out-parameter in case the msgSize was not enough to store the complete message.

Parameters
typeof the error message
Descriptionis the format string for args
argslist from a printf-like function
msgSizeis the size of the char[] used to store message
Returns
true if the message was added, false if not - the caller should call this method again in that case

References DEBUG, ERROR, and FATAL.

◆ InsertErrno() [1/2]

ERROR NOTICE DEBUG 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

References InsertErrno().

Referenced by InsertErrno().

◆ InsertErrno() [2/2]

bool InsertErrno ( MsgType  type,
const char *  Function,
const char *  Description,
va_list &  args,
int const  errsv,
size_t &  msgSize 
)

adds an errno message with the given type

args needs to be initialized with va_start and terminated with va_end by the caller. msgSize is also an out-parameter in case the msgSize was not enough to store the complete message.

Parameters
typeof the error message
Functionwhich failed
Descriptionis the format string for args
argslist from a printf-like function
errsvis the errno the error is for
msgSizeis the size of the char[] used to store message
Returns
true if the message was added, false if not - the caller should call this method again in that case

References Insert().

◆ Notice()

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

◆ NoticeE()

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

◆ PendingError()

bool PendingError ( ) const
inline

is an error in the list?

Returns
true if an error is included in the list, false otherwise

◆ PopMessage()

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

References ERROR, and FATAL.

◆ PushToStack()

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.

References Discard().

◆ Warning()

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

◆ WarningE()

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: