- Directive d'inclusion : #include DiscreteProcess.h
Les sous-classes de processus ponctuels propres au système simulé sont déclarées dans le fichier typiquement nommmé UserDiscreteProcess.h et réalisées dans le fichier UserDiscreteProcess.cc.
Pour chaque classe propre à son application, l'utilisateur doit essentiellement coder deux méthodes (en plus de l'éventuelle fonction de précondition, décrite dans la classe Process) :
- Une fonction d'exécution (nommée par exemple et arbitrairement MyProcess_Exec) qui code les changements que le processus provoque sur le système. Un processus ponctuel ne peut être contrôlé que par le type d'action (directive) EXEC. Le moteur de simulation, lorsqu'il rencontre dans un événement la directive EXEC associée à un processus ponctuel, invoque cette fonction d'exécution, par ExecVoidMethod(EXEC_PROCESS);.
- Le constructeur de la classe, dans lequel l'utilisateur doit appeler le constructeur de la classe de base avec le symbole (et éventuellement le nom de classe) qu'il associe à la classe. Par exemple :
MyProcess::MyProcess() : DiscreteProcess(MY_SYMBOL) { ... };Dans ce constructeur ou en dehors, l'utilisateur doit impérativement doter le processus de la fonction d'exécution du processus évoquée ci-dessus. Par exemple :
SetExec(MyProcess_Exec);Il est important de noter que le processus ponctuel est détruit par le moteur après son exécution effective (voir l'algorithme de la méthode Run() en début de description de la classe Simulation). Cependant, cette destruction intervient à un moment tel que l'utilisateur peut faire référence au processus (par son pointeur) dans les fonctions de postconséquence et d'autogénération invoquées après l'exécution de la directive sur le processus.
Lorsqu'un processus discret p dans un événement e est différé parce que sa précondition n'est pas satisfaite, il est d'abord copié (par RawCopy), puis attaché, avec une directive EXEC, à un nouvel événement (copie de e par RawCopy), puis enfin p est détruit par son destructeur superficiel (c'est-à-dire sans détruire les méthodes).