libSBML C API  5.18.0
ConstraintMacros.h File Reference

Defines the validator constraint "language". More...

Macros

#define END_CONSTRAINT
 
#define EXTERN_CONSTRAINT(Id, Name)
 
#define fail()    mLogMsg = true; return;
 
#define inv(expr)    if (!(expr)) { mLogMsg = true; return; }
 
#define inv_or(expr)   if (expr) { mLogMsg = false; return; } else mLogMsg = true;
 
#define pre(expr)    if (!(expr)) return;
 
#define START_CONSTRAINT(Id, Typename, Varname)
 

Detailed Description

Defines the validator constraint "language".

Author
Ben Bornstein

This file provides C/C++ macros that make it possible to easily define validation rules for SBML. These are called "validation constraints" in SBML (not to be confused with the Constraint_t object in SBML). The validator works by applying such constraints to a Model_t object in memory. A constraint can have preconditions, invariants, and log failures. Failures are retrievable as SBMLError_t objects in the SBMLErrorLog_t attached to the SBMLDocument_t containing the model.

Users can define their own additional validation constraints using the facilities in this file and the Validator_t class. Please consult the code from existing validation constraints for examples about how to use this.

Macro Definition Documentation

#define END_CONSTRAINT
Value:
}; \
#define LIBSBML_CPP_NAMESPACE_END
Definition: libsbml-namespace.h:66
#define EXTERN_CONSTRAINT (   Id,
  Name 
)
#define fail ( )    mLogMsg = true; return;
#define inv (   expr)    if (!(expr)) { mLogMsg = true; return; }
#define inv_or (   expr)    if (expr) { mLogMsg = false; return; } else mLogMsg = true;
#define pre (   expr)    if (!(expr)) return;
#define START_CONSTRAINT (   Id,
  Typename,
  Varname 
)
Value:
LIBSBML_CPP_NAMESPACE_BEGIN \
struct VConstraint ## Typename ## Id: public TConstraint<Typename> \
{ \
VConstraint ## Typename ## Id (Validator& V) : \
TConstraint<Typename>(Id, V) { } \
protected: \
void check_ (const Model& m, const Typename& Varname)