xContract - Contract Enforcement for C and C++ STLSoft - ... Robust, Lightweight, Cross-platform, Template Software ... Synesis Software

xcontract/xcontract.h File Reference


Detailed Description

[C, C++] Main header file for the xContract library.

#include <stlsoft/stlsoft.h>
#include <new>
#include <stdexcept>

Go to the source code of this file.

Namespaces

namespace  xcontract

Defines

#define XCONTRACT_VER_MAJOR   0
 The Major version number of the xContract library.
#define XCONTRACT_VER_MINOR   3
 Minor version number of the xContract library.
#define XCONTRACT_VER_REVISION   3
 The revision number of the xContract library.
#define XCONTRACT_VER   0x000303ff
 The composite version of the xContract library.
#define XCONTRACT_ENFORCE_UNEXPECTED_CONDITION(msg)   ((void)0)
 Expresses an unexpected condition enforcement.
#define XCONTRACT_ENFORCE_PRECONDITION_LOGIC_0(expr, msg)   ((void)0)
 Expresses a precondition (logic) enforcement.
#define XCONTRACT_ENFORCE_PRECONDITION_LOGIC_1(expr, msg)   ((void)0)
 Expresses a precondition (logic) enforcement.
#define XCONTRACT_ENFORCE_PRECONDITION_LOGIC_2(expr, msg)   ((void)0)
 Expresses a precondition (logic) enforcement.
#define XCONTRACT_ENFORCE_PRECONDITION_LOGIC_3(expr, msg)   ((void)0)
 Expresses a precondition (logic) enforcement.
#define XCONTRACT_ENFORCE_PRECONDITION_LOGIC_4(expr, msg)   ((void)0)
 Expresses a precondition (logic) enforcement.
#define XCONTRACT_ENFORCE_PRECONDITION_PARAMETERS_0(expr, msg)   ((void)0)
 Expresses a precondition (parameters) enforcement.
#define XCONTRACT_ENFORCE_PRECONDITION_PARAMETERS_1(expr, msg)   ((void)0)
 Expresses a precondition (parameters) enforcement.
#define XCONTRACT_ENFORCE_PRECONDITION_PARAMETERS_2(expr, msg)   ((void)0)
 Expresses a precondition (parameters) enforcement.
#define XCONTRACT_ENFORCE_PRECONDITION_PARAMETERS_3(expr, msg)   ((void)0)
 Expresses a precondition (parameters) enforcement.
#define XCONTRACT_ENFORCE_PRECONDITION_PARAMETERS_4(expr, msg)   ((void)0)
 Expresses a precondition (parameters) enforcement.
#define XCONTRACT_ENFORCE_POSTCONDITION_RETURN_0(expr, msg)   ((void)0)
 Expresses a postcondition (return value) enforcement.
#define XCONTRACT_ENFORCE_POSTCONDITION_RETURN_1(expr, msg)   ((void)0)
 Expresses a postcondition (return value) enforcement.
#define XCONTRACT_ENFORCE_POSTCONDITION_RETURN_2(expr, msg)   ((void)0)
 Expresses a postcondition (return value) enforcement.
#define XCONTRACT_ENFORCE_POSTCONDITION_RETURN_3(expr, msg)   ((void)0)
 Expresses a postcondition (return value) enforcement.
#define XCONTRACT_ENFORCE_POSTCONDITION_RETURN_4(expr, msg)   ((void)0)
 Expresses a postcondition (return value) enforcement.
#define XCONTRACT_ENFORCE_POSTCONDITION_LOGIC_0(expr, msg)   ((void)0)
 Expresses a postcondition (logic) enforcement.
#define XCONTRACT_ENFORCE_POSTCONDITION_LOGIC_1(expr, msg)   ((void)0)
 Expresses a postcondition (logic) enforcement.
#define XCONTRACT_ENFORCE_POSTCONDITION_LOGIC_2(expr, msg)   ((void)0)
 Expresses a postcondition (logic) enforcement.
#define XCONTRACT_ENFORCE_POSTCONDITION_LOGIC_3(expr, msg)   ((void)0)
 Expresses a postcondition (logic) enforcement.
#define XCONTRACT_ENFORCE_POSTCONDITION_LOGIC_4(expr, msg)   ((void)0)
 Expresses a postcondition (logic) enforcement.
#define XCONTRACT_ENFORCE_POSTCONDITION_PARAMETERS_0(expr, msg)   ((void)0)
 Expresses a postcondition (parameters) enforcement.
#define XCONTRACT_ENFORCE_POSTCONDITION_PARAMETERS_1(expr, msg)   ((void)0)
 Expresses a postcondition (parameters) enforcement.
#define XCONTRACT_ENFORCE_POSTCONDITION_PARAMETERS_2(expr, msg)   ((void)0)
 Expresses a postcondition (parameters) enforcement.
#define XCONTRACT_ENFORCE_POSTCONDITION_PARAMETERS_3(expr, msg)   ((void)0)
 Expresses a postcondition (parameters) enforcement.
#define XCONTRACT_ENFORCE_POSTCONDITION_PARAMETERS_4(expr, msg)   ((void)0)
 Expresses a postcondition (parameters) enforcement.
#define XCONTRACT_ENFORCE_CLASS_INVARIANT_0(expr, msg)   ((void)0)
 Expresses class invariant enforcement.
#define XCONTRACT_ENFORCE_CLASS_INVARIANT_1(expr, msg)   ((void)0)
 Expresses class invariant enforcement.
#define XCONTRACT_ENFORCE_CLASS_INVARIANT_2(expr, msg)   ((void)0)
 Expresses class invariant enforcement.
#define XCONTRACT_ENFORCE_CLASS_INVARIANT_3(expr, msg)   ((void)0)
 Expresses class invariant enforcement.
#define XCONTRACT_ENFORCE_CLASS_INVARIANT_4(expr, msg)   ((void)0)
 Expresses class invariant enforcement.
#define XCONTRACT_ENFORCE_GLOBAL_INVARIANT_0(expr, msg)   ((void)0)
 Expresses global invariant enforcement.
#define XCONTRACT_ENFORCE_GLOBAL_INVARIANT_1(expr, msg)   ((void)0)
 Expresses global invariant enforcement.
#define XCONTRACT_ENFORCE_GLOBAL_INVARIANT_2(expr, msg)   ((void)0)
 Expresses global invariant enforcement.
#define XCONTRACT_ENFORCE_GLOBAL_INVARIANT_3(expr, msg)   ((void)0)
 Expresses global invariant enforcement.
#define XCONTRACT_ENFORCE_GLOBAL_INVARIANT_4(expr, msg)   ((void)0)
 Expresses global invariant enforcement.
#define XCONTRACT_ENFORCE_STATIC_DATA_0(expr, msg)   ((void)0)
 Expresses static data enforcement.
#define XCONTRACT_ENFORCE_STATIC_DATA_1(expr, msg)   ((void)0)
 Expresses static data enforcement.
#define XCONTRACT_ENFORCE_STATIC_DATA_2(expr, msg)   ((void)0)
 Expresses static data enforcement.
#define XCONTRACT_ENFORCE_STATIC_DATA_3(expr, msg)   ((void)0)
 Expresses static data enforcement.
#define XCONTRACT_ENFORCE_STATIC_DATA_4(expr, msg)   ((void)0)
 Expresses static data enforcement.
#define XCONTRACT_ENFORCE_ASSUMPTION_0(expr, msg)   ((void)0)
 Expresses an intermediate assumption enforcement.
#define XCONTRACT_ENFORCE_ASSUMPTION_1(expr, msg)   ((void)0)
 Expresses an intermediate assumption enforcement.
#define XCONTRACT_ENFORCE_ASSUMPTION_2(expr, msg)   ((void)0)
 Expresses an intermediate assumption enforcement.
#define XCONTRACT_ENFORCE_ASSUMPTION_3(expr, msg)   ((void)0)
 Expresses an intermediate assumption enforcement.
#define XCONTRACT_ENFORCE_ASSUMPTION_4(expr, msg)   ((void)0)
 Expresses an intermediate assumption enforcement.

Typedefs

typedef enum
xContract_violation_type_t 
violation_type_t
 Alias for xContract_violation_type_t.
typedef void(XCONTRACT_CALLCONV * xContract_violationReport_fn_t )(char const *file, unsigned line, char const *function, char const *expression, char const *message, char const *qualifier, xContract_violation_type_t type, int level)
 Reporting function prototype.
typedef
xContract_violationReport_fn_t 
violationReport_fn_t
 Alias for xContract_violationReport_fn_t.

Enumerations

enum  xContract_violation_type_t {
  xContract_unexpectedCondition,
  xContract_precondition_logic,
  xContract_precondition_parameters,
  xContract_postcondition_returnValue,
  xContract_postcondition_logic,
  xContract_postcondition_parameters,
  xContract_invariant_class,
  xContract_invariant_global,
  xContract_staticData,
  xContract_intermediateAssumption,
  xContract_maximum_value
}
 The possible violation types. More...

Functions

int xContract_isConditionVerified (xContract_violation_type_t type, int level, char const *file, unsigned line, char const *function, char const *expression)
 Application-defined function that determines whether a test for a given violation type at a given level should be verified.
void xContract_violationReport (char const *file, unsigned line, char const *function, char const *expression, char const *message, char const *qualifier, xContract_violation_type_t type, int level)
 Stock reporting function, invoked when a custom function is not specified.
XCONTRACT_NORETURN void xContract_contract_violation (char const *file, unsigned line, char const *expression, char const *message, xContract_violation_type_t type)
 Invoked to report and respond to a contract violation.
XCONTRACT_NORETURN void xContract_contract_violation2 (char const *file, unsigned line, char const *function, char const *expression, char const *message, char const *qualifier, xContract_violation_type_t type, int level, xContract_violationReport_fn_t pfnReport)
 Invoked to report and respond to a contract violation.
char const * xContract_getViolationTypeString (xContract_violation_type_t type)
 C-style string corresponding to the given violation type.
size_t xContract_getViolationTypeStringLength (xContract_violation_type_t type)
 Length of the C-style string corresponding to the given violation type.


Define Documentation

#define XCONTRACT_VER   0x000303ff

The composite version of the xContract library.

#define XCONTRACT_VER_MAJOR   0

The Major version number of the xContract library.

#define XCONTRACT_VER_MINOR   3

Minor version number of the xContract library.

#define XCONTRACT_VER_REVISION   3

The revision number of the xContract library.


xContract Library documentation © Matthew Wilson and Synesis Software Pty Ltd, 2001-2008 SourceForge.net Logo