La classe de base des processus


o Process
Les instances de processus possèdent par construction des méthodes (instances de la classe Method) dont les corps codent ... : Ces corps de méthodes sont vides à la construction du processus. On leur affecte ensuite une valeur (qui est un pointeur sur une fonction écrite par l'utilisateur), par des invocations de SetPrecondition, SetExec, SetInitialize, SetGoOneStepForward ou SetStop. Par une convention propre à DIESE, ces corps prennent comme seul argument la méthode elle-même :
void myProcess_execProcess_Body(ProcessMethod* pM);

Comme on prend soin, avant son invocation, de doter la méthode d'un pointeur sur le processus qu'elle décrit, ce processus est accessible dans le corps par un message DescribedContinuousProcess() ou DescribedDiscreteProcess() adressé à la méthode (voir la page 'Attributs fonctionnels : les méthodes') :

  DiscreteProcess* pDP = pM->DescribedDiscreteProcess();

L'entité attachée au processus

Un processus opère un changement d'état sur le système simulé par les fonctions d'éxécution, d'initialisation et d'avancée. C'est le code de ces fonctions qui détermine quelles entités du système sont touchées par le processus. Il faut cependant spécifier avant leur invocation ce qu'on va appeler "l'entité cible" du processus. Sa valeur est renvoyée par la méthode ProcessedEntity :

  Entity* pPE = pDP->ProcessedEntity();

Cette entité est typiquement la seule que va toucher le processus, mais elle peut aussi n'être qu'une entité touchée parmi d'autres, ou bien encore n'être qu'un point de repère dans la structure du système à partir duquel le code des fonctions va rechercher la ou les entités touchées. L'entité cible du processus peut être déterminée de deux manières :


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