Le corps, affecté par SetExec, réalise l'effet du processus sur les composants du système touchés par le processus. .void myDiscreteProcess_execProcess_Body(ProcessMethod* pM) { DiscreteProcess* pDP = pM->DescribedDiscreteProcess(); Entity* pE = pDP->ProcessedEntity(); ... // l'effet du processus } MyDiscreteProcess::MyDiscreteProcess() : DiscreteProcess(MY_DISCRETE_PROCESS, "myDiscreteProcess") { ProcessedEntityClassId(BD_ENTITY); SetExec(myDiscreteProcess_execProcess_Body); };Le constructeur ExecProcess() affecte le symbole de classe EXEC_PROCESS et le nom de classe "execProcess". Ainsi, on peut écrire :
int main(...) { ... DiscreteProcess* pDP = new MyDiscreteProcess(); // le code ci-dessous ... Method* pM = pDP->GetMethod(EXEC_PROCESS); ((VoidProcessMethod*)pM)->Body((ProcessMethod*)pM); // ... est équivalent à celui-ci pDP->ExecVoidMethod(EXEC_PROCESS); ... }