Le corps, affecté par SetPrecondition, code la précondition du processus.int myContinuousProcess_processPrecondition_Body(ProcessMethod*) pM) { result = 1; ContinuousProcess* pCP = pM->DescribedContinuousProcess(); Entity* pE = pCP->ProcessedEntity(); ... // valuation de result à 1 (précondition satisfaite) ou à 0 return result; } MyContinuousProcess::MyContinuousProcess() : ContinuousProcess(MY_CONTINUOUS_PROCESS, "myContinuousProcess") { Step(24); ProcessedEntityClassId(BD_ENTITY); SetPrecondition(myContinuousProcess_processPrecondition_Body); };Le constructeur ProcessPrecondition() affecte le symbole de classe PROCESS_PRECONDITION et le nom de classe "processPrecondition". Ainsi, on peut écrire :
int main(...) { ... ContinuousProcess* pCP = new MyContinuousProcess(); int preConditionValue; // le code ci-dessous ... Method* pM = pCP->GetMethod(PROCESS_PRECONDITION ); preConditionValue = ((IntProcessMethod*)pM)->Body((ProcessMethod*)pM); // ... est équivalent à celui-ci preConditionValue = pCP->ExecIntMethod(PROCESS_PRECONDITION); ... }