REQUIRE, REQUIRE_ERR, ENSURE, ENSURE_ERR, INSIST, INSIST_ERR, INVARIANT,
     INVARIANT_ERR, set_assertion_failure_callback -- assertion system
     #include <isc/assertions.h>
     typedef void (*assertion_failure_callback)(char *filename, int line,
	 assertion_type type, char *condition, int print_errno);
     REQUIRE(int boolean_expression);
     REQUIRE_ERR(int boolean_expression);
     ENSURE(int boolean_expression);
     ENSURE_ERR(int boolean_expression);
     INSIST(int boolean_expression);
     INSIST_ERR(int boolean_expression);
     INVARIANT(int boolean_expression);
     INVARIANT_ERR(int boolean_expression);
     void
     set_assertion_failure_callback(assertion_failure_callback callback);
     char *
     assertion_type_to_text(assertion_type type);
     The REQUIRE(), ENSURE(), INSIST(), and INVARIANT() macros evaluate a
     boolean expression, and if it is false, they invoke the current assertion
     failure callback.	The default callback will print a message to stderr
     describing the failure, and then cause the program to dump core.  If the
     ``_ERR()'' variant of the assertion is used, the callback will include
     strerror(errno) in its message.
     Each assertion type has an associated CHECK macro.  If this macro's value
     is ``0'' when ``<isc/assertions.h>'' is included, then assertions of that
     type will not be checked.	E.g.
	   #define CHECK_ENSURE 0
     will disable checking of ENSURE() and ENSURE_ERR().  The macros CHECK_ALL
     and CHECK_NONE may also be used, respectively specifying that either all
     or none of the assertion types should be checked.
     set_assertion_failure_callback() specifies the function to call when an
     assertion fails.
     When an assertion_failure_callback() is called, the filename and line
     arguments specify the filename and line number of the failing assertion.
     The type is one of:
	   assert_require
	   assert_ensure
	   assert_insist
	   assert_invariant
     and may be used by the callback to determine the type of the failing
     assertion.  condition is the literal text of the assertion that failed.
     print_errno will be non-zero if the callback should print strerror errno
     as part of its output.
     assertion_type_to_text() returns a textual representation of type.  For
     example, assertion_type_to_text(assert_require) returns the string
     ``REQUIRE''.
     Bertrand Meyer, Object-Oriented Software Construction, 2nd edition,
     chapter 11, Prentice-Hall, 1997, ISBN 0-13-629155-4.
     Bob Halley (ISC).
ISC			       November 17, 1997			   ISC
  [ Back ] |