Synesis Software STLSoft - ... Robust, Lightweight, Cross-platform, Template Software ...

xcontract/xcontract.h File Reference


Detailed Description

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

#include <stddef.h>

Go to the source code of this file.

Namespaces

namespace  xcontract
namespace  stlsoft

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   7
 The revision number of the xContract library.
#define XCONTRACT_VER   0x000307ff
 The composite version of the xContract library.
#define XCONTRACT_ENFORCE_UNEXPECTED_CONDITION(msg)   XCONTRACT_ENFORCE_CONDITION_TYPE_LEVEL_(XCONTRACT_NS_QUAL(xContract_unexpectedCondition), 0, NULL, msg)
 Expresses an unexpected condition enforcement.
#define XCONTRACT_ENFORCE_PRECONDITION_LOGIC_0(expr, msg)   XCONTRACT_ENFORCE_CONDITION_TYPE_LEVEL_(XCONTRACT_NS_QUAL(xContract_precondition_logic), 0, expr, msg)
 Expresses a precondition (logic) enforcement.
#define XCONTRACT_ENFORCE_PRECONDITION_LOGIC_1(expr, msg)   XCONTRACT_ENFORCE_CONDITION_TYPE_LEVEL_(XCONTRACT_NS_QUAL(xContract_precondition_logic), 1, expr, msg)
 Expresses a precondition (logic) enforcement.
#define XCONTRACT_ENFORCE_PRECONDITION_LOGIC_2(expr, msg)   XCONTRACT_ENFORCE_CONDITION_TYPE_LEVEL_(XCONTRACT_NS_QUAL(xContract_precondition_logic), 2, expr, msg)
 Expresses a precondition (logic) enforcement.
#define XCONTRACT_ENFORCE_PRECONDITION_LOGIC_3(expr, msg)   XCONTRACT_ENFORCE_CONDITION_TYPE_LEVEL_(XCONTRACT_NS_QUAL(xContract_precondition_logic), 3, expr, msg)
 Expresses a precondition (logic) enforcement.
#define XCONTRACT_ENFORCE_PRECONDITION_LOGIC_4(expr, msg)   XCONTRACT_ENFORCE_CONDITION_TYPE_LEVEL_(XCONTRACT_NS_QUAL(xContract_precondition_logic), 4, expr, msg)
 Expresses a precondition (logic) enforcement.
#define XCONTRACT_ENFORCE_PRECONDITION_PARAMETERS_0(expr, msg)   XCONTRACT_ENFORCE_CONDITION_TYPE_LEVEL_(XCONTRACT_NS_QUAL(xContract_precondition_parameters), 0, expr, msg)
 Expresses a precondition (parameters) enforcement.
#define XCONTRACT_ENFORCE_PRECONDITION_PARAMETERS_1(expr, msg)   XCONTRACT_ENFORCE_CONDITION_TYPE_LEVEL_(XCONTRACT_NS_QUAL(xContract_precondition_parameters), 1, expr, msg)
 Expresses a precondition (parameters) enforcement.
#define XCONTRACT_ENFORCE_PRECONDITION_PARAMETERS_2(expr, msg)   XCONTRACT_ENFORCE_CONDITION_TYPE_LEVEL_(XCONTRACT_NS_QUAL(xContract_precondition_parameters), 2, expr, msg)
 Expresses a precondition (parameters) enforcement.
#define XCONTRACT_ENFORCE_PRECONDITION_PARAMETERS_3(expr, msg)   XCONTRACT_ENFORCE_CONDITION_TYPE_LEVEL_(XCONTRACT_NS_QUAL(xContract_precondition_parameters), 3, expr, msg)
 Expresses a precondition (parameters) enforcement.
#define XCONTRACT_ENFORCE_PRECONDITION_PARAMETERS_4(expr, msg)   XCONTRACT_ENFORCE_CONDITION_TYPE_LEVEL_(XCONTRACT_NS_QUAL(xContract_precondition_parameters), 4, expr, msg)
 Expresses a precondition (parameters) enforcement.
#define XCONTRACT_ENFORCE_POSTCONDITION_RETURN_0(expr, msg)   XCONTRACT_ENFORCE_CONDITION_TYPE_LEVEL_(XCONTRACT_NS_QUAL(xContract_postcondition_returnValue), 0, expr, msg)
 Expresses a postcondition (return value) enforcement.
#define XCONTRACT_ENFORCE_POSTCONDITION_RETURN_1(expr, msg)   XCONTRACT_ENFORCE_CONDITION_TYPE_LEVEL_(XCONTRACT_NS_QUAL(xContract_postcondition_returnValue), 1, expr, msg)
 Expresses a postcondition (return value) enforcement.
#define XCONTRACT_ENFORCE_POSTCONDITION_RETURN_2(expr, msg)   XCONTRACT_ENFORCE_CONDITION_TYPE_LEVEL_(XCONTRACT_NS_QUAL(xContract_postcondition_returnValue), 2, expr, msg)
 Expresses a postcondition (return value) enforcement.
#define XCONTRACT_ENFORCE_POSTCONDITION_RETURN_3(expr, msg)   XCONTRACT_ENFORCE_CONDITION_TYPE_LEVEL_(XCONTRACT_NS_QUAL(xContract_postcondition_returnValue), 3, expr, msg)
 Expresses a postcondition (return value) enforcement.
#define XCONTRACT_ENFORCE_POSTCONDITION_RETURN_4(expr, msg)   XCONTRACT_ENFORCE_CONDITION_TYPE_LEVEL_(XCONTRACT_NS_QUAL(xContract_postcondition_returnValue), 4, expr, msg)
 Expresses a postcondition (return value) enforcement.
#define XCONTRACT_ENFORCE_POSTCONDITION_LOGIC_0(expr, msg)   XCONTRACT_ENFORCE_CONDITION_TYPE_LEVEL_(XCONTRACT_NS_QUAL(xContract_postcondition_logic), 0, expr, msg)
 Expresses a postcondition (logic) enforcement.
#define XCONTRACT_ENFORCE_POSTCONDITION_LOGIC_1(expr, msg)   XCONTRACT_ENFORCE_CONDITION_TYPE_LEVEL_(XCONTRACT_NS_QUAL(xContract_postcondition_logic), 1, expr, msg)
 Expresses a postcondition (logic) enforcement.
#define XCONTRACT_ENFORCE_POSTCONDITION_LOGIC_2(expr, msg)   XCONTRACT_ENFORCE_CONDITION_TYPE_LEVEL_(XCONTRACT_NS_QUAL(xContract_postcondition_logic), 2, expr, msg)
 Expresses a postcondition (logic) enforcement.
#define XCONTRACT_ENFORCE_POSTCONDITION_LOGIC_3(expr, msg)   XCONTRACT_ENFORCE_CONDITION_TYPE_LEVEL_(XCONTRACT_NS_QUAL(xContract_postcondition_logic), 3, expr, msg)
 Expresses a postcondition (logic) enforcement.
#define XCONTRACT_ENFORCE_POSTCONDITION_LOGIC_4(expr, msg)   XCONTRACT_ENFORCE_CONDITION_TYPE_LEVEL_(XCONTRACT_NS_QUAL(xContract_postcondition_logic), 4, expr, msg)
 Expresses a postcondition (logic) enforcement.
#define XCONTRACT_ENFORCE_POSTCONDITION_PARAMETERS_0(expr, msg)   XCONTRACT_ENFORCE_CONDITION_TYPE_LEVEL_(XCONTRACT_NS_QUAL(xContract_postcondition_parameters), 0, expr, msg)
 Expresses a postcondition (parameters) enforcement.
#define XCONTRACT_ENFORCE_POSTCONDITION_PARAMETERS_1(expr, msg)   XCONTRACT_ENFORCE_CONDITION_TYPE_LEVEL_(XCONTRACT_NS_QUAL(xContract_postcondition_parameters), 1, expr, msg)
 Expresses a postcondition (parameters) enforcement.
#define XCONTRACT_ENFORCE_POSTCONDITION_PARAMETERS_2(expr, msg)   XCONTRACT_ENFORCE_CONDITION_TYPE_LEVEL_(XCONTRACT_NS_QUAL(xContract_postcondition_parameters), 2, expr, msg)
 Expresses a postcondition (parameters) enforcement.
#define XCONTRACT_ENFORCE_POSTCONDITION_PARAMETERS_3(expr, msg)   XCONTRACT_ENFORCE_CONDITION_TYPE_LEVEL_(XCONTRACT_NS_QUAL(xContract_postcondition_parameters), 3, expr, msg)
 Expresses a postcondition (parameters) enforcement.
#define XCONTRACT_ENFORCE_POSTCONDITION_PARAMETERS_4(expr, msg)   XCONTRACT_ENFORCE_CONDITION_TYPE_LEVEL_(XCONTRACT_NS_QUAL(xContract_postcondition_parameters), 4, expr, msg)
 Expresses a postcondition (parameters) enforcement.
#define XCONTRACT_ENFORCE_CLASS_INVARIANT_0(expr, msg)   XCONTRACT_ENFORCE_CONDITION_TYPE_LEVEL_(XCONTRACT_NS_QUAL(xContract_invariant_class), 0, expr, msg)
 Expresses class invariant enforcement.
#define XCONTRACT_ENFORCE_CLASS_INVARIANT_1(expr, msg)   XCONTRACT_ENFORCE_CONDITION_TYPE_LEVEL_(XCONTRACT_NS_QUAL(xContract_invariant_class), 1, expr, msg)
 Expresses class invariant enforcement.
#define XCONTRACT_ENFORCE_CLASS_INVARIANT_2(expr, msg)   XCONTRACT_ENFORCE_CONDITION_TYPE_LEVEL_(XCONTRACT_NS_QUAL(xContract_invariant_class), 2, expr, msg)
 Expresses class invariant enforcement.
#define XCONTRACT_ENFORCE_CLASS_INVARIANT_3(expr, msg)   XCONTRACT_ENFORCE_CONDITION_TYPE_LEVEL_(XCONTRACT_NS_QUAL(xContract_invariant_class), 3, expr, msg)
 Expresses class invariant enforcement.
#define XCONTRACT_ENFORCE_CLASS_INVARIANT_4(expr, msg)   XCONTRACT_ENFORCE_CONDITION_TYPE_LEVEL_(XCONTRACT_NS_QUAL(xContract_invariant_class), 4, expr, msg)
 Expresses class invariant enforcement.
#define XCONTRACT_ENFORCE_GLOBAL_INVARIANT_0(expr, msg)   XCONTRACT_ENFORCE_CONDITION_TYPE_LEVEL_(XCONTRACT_NS_QUAL(xContract_invariant_global), 0, expr, msg)
 Expresses global invariant enforcement.
#define XCONTRACT_ENFORCE_GLOBAL_INVARIANT_1(expr, msg)   XCONTRACT_ENFORCE_CONDITION_TYPE_LEVEL_(XCONTRACT_NS_QUAL(xContract_invariant_global), 1, expr, msg)
 Expresses global invariant enforcement.
#define XCONTRACT_ENFORCE_GLOBAL_INVARIANT_2(expr, msg)   XCONTRACT_ENFORCE_CONDITION_TYPE_LEVEL_(XCONTRACT_NS_QUAL(xContract_invariant_global), 2, expr, msg)
 Expresses global invariant enforcement.
#define XCONTRACT_ENFORCE_GLOBAL_INVARIANT_3(expr, msg)   XCONTRACT_ENFORCE_CONDITION_TYPE_LEVEL_(XCONTRACT_NS_QUAL(xContract_invariant_global), 3, expr, msg)
 Expresses global invariant enforcement.
#define XCONTRACT_ENFORCE_GLOBAL_INVARIANT_4(expr, msg)   XCONTRACT_ENFORCE_CONDITION_TYPE_LEVEL_(XCONTRACT_NS_QUAL(xContract_invariant_global), 4, expr, msg)
 Expresses global invariant enforcement.
#define XCONTRACT_ENFORCE_STATIC_DATA_0(expr, msg)   XCONTRACT_ENFORCE_CONDITION_TYPE_LEVEL_(XCONTRACT_NS_QUAL(xContract_staticData), 0, expr, msg)
 Expresses static data enforcement.
#define XCONTRACT_ENFORCE_STATIC_DATA_1(expr, msg)   XCONTRACT_ENFORCE_CONDITION_TYPE_LEVEL_(XCONTRACT_NS_QUAL(xContract_staticData), 1, expr, msg)
 Expresses static data enforcement.
#define XCONTRACT_ENFORCE_STATIC_DATA_2(expr, msg)   XCONTRACT_ENFORCE_CONDITION_TYPE_LEVEL_(XCONTRACT_NS_QUAL(xContract_staticData), 2, expr, msg)
 Expresses static data enforcement.
#define XCONTRACT_ENFORCE_STATIC_DATA_3(expr, msg)   XCONTRACT_ENFORCE_CONDITION_TYPE_LEVEL_(XCONTRACT_NS_QUAL(xContract_staticData), 3, expr, msg)
 Expresses static data enforcement.
#define XCONTRACT_ENFORCE_STATIC_DATA_4(expr, msg)   XCONTRACT_ENFORCE_CONDITION_TYPE_LEVEL_(XCONTRACT_NS_QUAL(xContract_staticData), 4, expr, msg)
 Expresses static data enforcement.
#define XCONTRACT_ENFORCE_ASSUMPTION_0(expr, msg)   XCONTRACT_ENFORCE_CONDITION_TYPE_LEVEL_(XCONTRACT_NS_QUAL(xContract_intermediateAssumption), 0, expr, msg)
 Expresses an intermediate assumption enforcement.
#define XCONTRACT_ENFORCE_ASSUMPTION_1(expr, msg)   XCONTRACT_ENFORCE_CONDITION_TYPE_LEVEL_(XCONTRACT_NS_QUAL(xContract_intermediateAssumption), 1, expr, msg)
 Expresses an intermediate assumption enforcement.
#define XCONTRACT_ENFORCE_ASSUMPTION_2(expr, msg)   XCONTRACT_ENFORCE_CONDITION_TYPE_LEVEL_(XCONTRACT_NS_QUAL(xContract_intermediateAssumption), 2, expr, msg)
 Expresses an intermediate assumption enforcement.
#define XCONTRACT_ENFORCE_ASSUMPTION_3(expr, msg)   XCONTRACT_ENFORCE_CONDITION_TYPE_LEVEL_(XCONTRACT_NS_QUAL(xContract_intermediateAssumption), 3, expr, msg)
 Expresses an intermediate assumption enforcement.
#define XCONTRACT_ENFORCE_ASSUMPTION_4(expr, msg)   XCONTRACT_ENFORCE_CONDITION_TYPE_LEVEL_(XCONTRACT_NS_QUAL(xContract_intermediateAssumption), 4, expr, msg)
 Expresses an intermediate assumption enforcement.

Typedefs

typedef 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
}
 The possible violation types. More...

Functions

 XCONTRACT_CALL (int) xContract_isConditionVerified(xContract_violation_type_t type
 Application-defined function that determines whether a test for a given violation type at a given level should be verified.
 XCONTRACT_CALL (void) xContract_violationReport(char const *file
 Stock reporting function, invoked when a custom function is not specified.
 XCONTRACT_CALL (char const *) xContract_getViolationTypeString(xContract_violation_type_t type)
 C-style string corresponding to the given violation type.
 XCONTRACT_CALL (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   0x000307ff

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   7

The revision number of the xContract library.


b64 Library documentation © Synesis Software Pty Ltd, 2004-2012