Arrêt d'un processus continu


o StopProcess
Le corps, affecté par SetStop, code l'arrêt du processus continu.

void myContinuousProcess_stopProcess_Body(ProcessMethod* pM) {
  ContinuousProcess* pCP = pM->DescribedContinuousProcess();
  Entity* pE = pCP->ProcessedEntity();
  ... // l'évolution en un pas de l'état du système touché par le processus
}
MyContinuousProcess::MyContinuousProcess() 
   : ContinuousProcess(MY_CONTINUOUS_PROCESS, "myContinuousProcess") {
  Step(24);
  ProcessedEntityClassId(BD_ENTITY);
  SetGoOneStepForward(myContinuousProcess_stopProcess_Body);
};

Le constructeur StopProcess() affecte le symbole de classe STOP_PROCESS et le nom de classe "stopProcess". Ainsi, on peut écrire :

int main(...) {
  ...
  ContinuousProcess* pCP = new MyContinuousProcess();

  // le code ci-dessous ...
  Method* pM = pCP->GetMethod(STOP_PROCESS);
  ((VoidProcessMethod*)pM)->Body((ProcessMethod*)pM);

  // ... est équivalent à celui-ci
  pCP->ExecVoidMethod(STOP_PROCESS);
  ...
}

On rappelle ici que la méthode StopProcess est automatiquement invoquée lorsque le moteur de simulation rencontre un événement avec une directive STOP sur un processeur continu. Voir à la page 'La classe des processus continus' les différentes manières d'arrêter un processus continu.


This page was generated with the help of DOC++.