class ContinuousProcess


Héritage :


Méthodes publiques

[more] Constructeurs/Destructeurs
[more] Opérateurs
[more] Le pas du processus
[more] Programmation de l'exécution
[more] Initialisation, avancée, arrêt


Hérité de Process:

Méthodes publiques

Constructeurs/Destructeurs

Identification et accès

L'entité attachée au processus

Spécification de la précondition

Spécification du délai de reprogrammation

Affectation de méthodes spécifiques

Affectation d'un corps aux méthodes, et de valeurs aux arguments


o Constructeurs/Destructeurs

o ContinuousProcess(UserProcessId)
Un des deux constructeurs qui doivent être appelés par les classes définies par l'utilisateur. Affecte le type CONTINUOUS_PROCESS, la valeur 1 au pas du processus (modifiable par appel de la méthode Step(int) et le symbole de classe donné en argument. Utiliser la méthode ClassName pour affecter un nom de classe.

o ContinuousProcess(UserProcessId, char*)
Un des deux constructeurs qui doivent être appelés par les classes définies par l'utilisateur. Mêmes affectations que ci-dessus, plus le nom de classe donné en second argument.

o ContinuousProcess(const ContinuousProcess&)
Constructeur par copie profonde, y compris des méthodes. Invoque le constructeur par copie de la classe-mère.

o ~ContinuousProcess()
Destructeur superficiel. Ne détruit pas l'entité sur laquelle le processus opère des changements d'état, ni les instances de méthodes.

ovoid DeleteInDepth()
Méthode de destruction. Ne détruit pas l'entité sur laquelle le processus opère des changements d'état. Détruit les instances de Method attachées au processus (précondition, initialisation, avancée, arrêt).

o Opérateurs

oconst ContinuousProcess& operator=(const ContinuousProcess&)
Opérateur d'affectation. Invoque les opérateurs d'affectation des méthodes. Renvoie une référence à l'entité d'origine.

o Le pas du processus

ovoid Step(int)
Affecte la valeur donnée en argument au pas du processus.

oint Step() const
Renvoie la valeur du pas du processus

o Programmation de l'exécution

oBoolean PostInitialisationEvent(int)
Insère dans l'agenda un événement d'initialisation du processus récepteur de ce message, à la date passée en argument. La priorité de l'événement est 0. Renvoie TRUE seulement si l'événément a pu être inséré. Désalloue l'événement instancié dans le cas contraire. Le code appelant doit se charger de l'éventuelle désallocation du processus.

oBoolean PostInitialisationEvent(int, int)
Même effet que la méthode précédente. La priorité de l'événement est passée en second argument.

oBoolean PostInitAndProceedEvent(int)
Insère dans l'agenda un événement d'initialisation et de continuation immédiate du processus récepteur de ce message, à la date passée en argument. La priorité de l'événement est 0. Renvoie TRUE seulement si l'événément a pu être inséré. Désalloue l'événement instancié dans le cas contraire. Le code appelant doit se charger de l'éventuelle désallocation du processus.

oBoolean PostInitAndProceedEvent(int, int)
Même effet que la méthode précédente. La priorité de l'événement est passée en second argument.

oBoolean PostInitThenProceedEvent(int, int)
Insère dans l'agenda deux événements : l'un d'initialisation à la date passée en premier argument, et l'autre de continuation du processus récepteur de ce message, à la date passée en second argument. La priorité de l'événement est 0. Renvoie TRUE seulement si les deux événéments ont pu être insérés. Désalloue la ou les deux événements instanciés dans le cas contraire. Le code appelant doit se charger de l'éventuelle désallocation du processus.

oBoolean PostInitThenProceedEvent(int, int, int)
Même effet que la méthode précédente. La priorité de l'événement est passée en troisième argument.

oBoolean PostProceedEvent(int)
Insère dans l'agenda un événement de continuation du processus récepteur de ce message (à partir de son état courant), à la date passée en argument. La priorité de l'événement est 0. Désalloue l'événement instancié dans le cas contraire. Le code appelant doit se charger de l'éventuelle désallocation du processus.

oBoolean PostProceedEvent(int, int)
Même effet que la méthode précédente. La priorité de l'événement est passée en second argument.

o Initialisation, avancée, arrêt

Le message : <processus>->SetInitialize(f1); affecte un corps f1 à l'instance de Method (précisément instance de InitializeProcess) dont le symbole de classe est INITIALIZE_PROCESS. Ce corps réalise l'initialisation du processus.

Le message : <processus>->SetGoOneStepForward(f2); affecte un corps f2 à l'instance de Method (précisément instance de GoOneStepForwardProcess) dont le symbole de classe est GOONESTEPFORWARD_PROCESS. Ce corps, invoqué répétitivement jusqu'à interruption dans la méthode prédéfinie Proceed, réalise l'avancée de l'effet du processus pour un pas de temps.

Il y a trois manières d'arrêter un processus continu :

Le message : <processus>}->SetStop(f3); affecte un corps f3 à l'instance de Method (précisément instance de StopProcess) dont le symbole de classe est STOP_PROCESS. Ce corps réalise l'arrêt du processus. Par exemple, si l'arrêt du processus pP est demandé à l'intérieur de la fonction qui code l'avancée sur un pas, l'appel sera écrit pP->ExecVoidMethod(STOP_PROCESS); Normalement, f3 contient une invocation de ToBeStopped(TRUE); sur le processus en jeu.

Par une convention propre à DIESE, chaque corps prend comme seul argument l'instance de Method dont il est le corps. Le processus en jeu est donc accessible par une invocation de DescribedContinuousProcess sur la méthode. Dans chacun de ces corps, on peut donc accéder à une entité particulière, celle renvoyée par l'invocation de ProcessedEntity sur le processus en jeu. C'est typiquement, mais non obligatoirement, celle dont le processus change les variables d'état. Par exemple, f3 peut être :

void MyProcessClass_Fct3(ProcessMethod* pM) {
  ContinuousProcess* pP = pM->DescribedContinuousProcess();
  Entity* pE = pP->ProcessedEntity();
  pP->ToBeStopped(TRUE);
  ...
}

ovoid SetInitialize(void (* function)(ProcessMethod*))
Dote le processus d'un corps de méthode qui code son initialisation (c'est-à-dire l'initialisation des valeurs des variables d'état qu'il contrôle).

ovoid SetGoOneStepForward(void (* function)(ProcessMethod* pM))
Dote le processus d'un corps de méthode qui code son avancée pour une période de un pas (c'est-à-dire les changements de valeur des variables d'état qu'il provoque), à partir de la dernière date où l'état a été calculé jusqu'à la même date augmentée du pas du processus.

ovoid SetStop(void (* function)(ProcessMethod*))
Dote le processus d'un corps de méthode qui code son arrêt. La fonction peut ne contenir qu'un message ToBeStopped(TRUE); adressé au processus placé en argument, ou bien ce message plus autre chose.

ovoid ToBeStopped(Boolean)
Détermine si le processus doit être arrêté (avec TRUE en argument).

oBoolean ToBeStopped() const
Renvoie TRUE si le processus doit être arrêté, FALSE (par défaut) sinon


Classes descendantes directes :
ReadSequentialDataFileProcess

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