|
BDE 4.39.x Production Release
|
#include <bsls_review.h>
This "utility" class maintains a pointer containing the address of the current review-failure handler function (of type Review::ViolationHandler) and provides methods to administer this function pointer. The invokeHandler method calls the currently-installed failure handler. The default installed handler is the Review::failByLog function.
This class also provides a suite of standard failure-handler functions that are suitable to be installed as the current Review::ViolationHandler function.
Finally, this class defines the constant strings that are used as the reviewLevel in ReviewViolations associated with failed BSLS_REVIEW invocations.
See bsls_review
Public Types | |
| typedef bsls::AtomicOperations::AtomicTypes::Int | Count |
| typedef void(* | ViolationHandler) (const ReviewViolation &) |
Static Public Member Functions | |
| static void | setViolationHandler (Review::ViolationHandler function) |
| static Review::ViolationHandler | violationHandler () |
| static void | lockReviewAdministration () |
| static int | updateCount (Count *count) |
| static void | invokeHandler (const ReviewViolation &violation) |
| static void | failByLog (const ReviewViolation &violation) |
| static BSLS_ANNOTATION_NORETURN void | failByAbort (const ReviewViolation &violation) |
| static BSLS_ANNOTATION_NORETURN void | failBySleep (const ReviewViolation &violation) |
| static BSLS_ANNOTATION_NORETURN void | failByThrow (const ReviewViolation &violation) |
Static Public Attributes | |
| static const char | k_LEVEL_SAFE [] |
| static const char | k_LEVEL_OPT [] |
| static const char | k_LEVEL_REVIEW [] |
| static const char | k_LEVEL_INVOKE [] |
Friends | |
| class | ReviewFailureHandlerGuard |
| typedef bsls::AtomicOperations::AtomicTypes::Int bsls::Review::Count |
Count is an alias for an atomic integer. All bsls_review macros declare a static local Count variable that is used to track how many times that review has failed. This count gets updated through the bsls::Review::updateCount function.
| typedef void(* bsls::Review::ViolationHandler) (const ReviewViolation &) |
ViolationHandler is an alias for a pointer to a function returning void, and taking, as a parameter, a const reference to a ReviewViolation instance. For example:
|
static |
Emulate the invocation of the standard assert macro with a false argument, using the specified violation to generate an output message and then, after logging, unconditionally abort.
|
static |
Log a message to stdout that an assertion has failed with information on the failure from the specified violation. A suitably formatted "cheap stack" is included in the log message that identifies the call site where the failure occurred.
|
static |
Use the specified violation to generate an output message and then, after logging, spin in an infinite loop.
|
static |
Throw an AssertTestException (whose attributes are comment, filename, and lineNumber from the specified violation), provided that BDE_BUILD_TARGET_EXC is defined; otherwise, log an appropriate message and abort the program (similar to failByAbort).
|
static |
Invoke the currently installed review-failure handler function with the specified violation as its argument.
|
static |
Disable all subsequent calls to setViolationHandler.
ReviewFailureHandlerGuard object.
|
static |
Make the specified handler function the current review-failure handler. This method has no effect if the lockReviewAdministration method has been called.
|
static |
Increment the specified count and return the new value. Instead of overflowing, when the value is sufficiently large, decrement the value so that large values repeat periodically.
|
static |
Return the address of the currently installed review-failure handler function.
Review::failByLog method.
|
friend |
|
static |
|
static |
|
static |
|
static |