class Activity


Héritage :


Méthodes publiques

[more] Accès

Public Members

[more] Constructeurs/Destructeurs
[more] Opérations


o Constructeurs/Destructeurs

o Constructeur de base ()
Ce constructeur de base ne doit pas être invoqué par l'utilisateur, car aucune instance directe ne doit être créée pour cette classe (de symbole ACTIVITY). Ce constructeur est en fait automatiquement appelé avant le constructeur propre à chaque sous-classe. L'instance créée est alors ajoutée à la liste des instances (indirectes) de la classe Activity.

descripteurs :
Les descripteurs de type int représentent un nombre d'unités de temps simulé, à partir du début de la simulation (voir DIESE : Manuel de l'utilisateur). La valeur par défaut est en dernière colonne.

\noindent
SITUATION situation état de l'activité C_StateId SLEEPING
BEG_DATE begDate date de début réel int -9
MIN_BEG_DATE minBegDate date de début au plus tôt int -9
MAX_BEG_DATE maxBegDate date de début au plus tard int -9
END_DATE endDate date de fin réelle int -9
MIN_END_DATE minEndDate date de fin au plus tôt int -9
MAX_END_DATE maxEndDate date de fin au plus tard int -9

méthodes :

\noindent
OPENING_PREDICATE openingPredicate prédicat d'ouverture EntityPredicate
CLOSING_PREDICATE closingPredicate prédicat de fermeture EntityPredicate

o Accès

ovoid CheckLocalDates()
Vérifie la cohérence des fenêtres d'ouverture et de fermeture, en termes de dates (unités de temps simulé depuis le début de la simulation). Les dates considérées sont celles spécifiées (ou non) au niveau même de l'activité

ovoid CheckDates()
Opère la même fonction que CheckLocaldates, mais les dates considérées sont celles calculées à partir de celles spécifiées (ou non) au niveau même de l'activité, d'une part, et des ascendants et descendants de l'activités, d'autre part.

ovoid PrintLocalDates()
Imprime les fenêtres d'ouverture et de fermeture, en termes de dates (unités de temps simulé depuis le début de la simulation). Les valeurs affichées sont celles attribuées à l'activité elle-même.

ovoid PrintDates()
Imprime les fenêtres d'ouverture et de fermeture, en termes de dates (unités de temps simulé depuis le début de la simulation). Les valeurs affichées sont celles attribuées à l'activité elle-même où déduites des dates attribuées aus éléments et/ou aux sur-ensembles.

ovoid SetOpenClosePredicates(bool (*openPred) (EntityMethod*), bool (*closePred) (EntityMethod*))
Etablit les conditions d'ouverture et de fermeture, en termes de prédicats. Une donnée manquante doit être codée par le pointeur NULL.

obool TrueOpeningPredicate()
Renvoie vrai si on a donné un corps au prédicat d'ouverture et si ce prédicat renvoie vrai, et faux sinon.

obool NotFalseOpeningPredicate()
Renvoie vrai si on n'a pas donné un corps au prédicat d'ouverture ou si ce prédicat renvoie vrai, et faux sinon.

obool TrueClosingPredicate()
Renvoie vrai si on a donné un corps au prédicat de fermeture et si ce prédicat renvoie vrai, et faux sinon.

obool NotFalseClosingPredicate()
Renvoie vrai si on n'a pas donné un corps au prédicat de fermeture ou si ce prédicat renvoie vrai, et faux sinon.

obool IsOpenConditionNotYetSatisfied()
Renvoie vrai si la condition d'ouverture est spécifiée et (1) si la date courante est antérieure à la fenêtre de début de l'activité lorsque celle-ci est spécifiée ou (2) si on est dans la fenêtre de début mais le prédicat d'ouverture n'est pas satisfait s'il existe.

obool IsCloseConditionNotYetSatisfied()
Renvoie vrai si la condition de fermeture est spécifiée et (1) si la date courante est antérieure à la fenêtre de fin de l'activité lorsque celle-ci est spécifiée ou (2) si on est dans la fenêtre de fin mais que le prédicat de fermeture n'est pas satisfait s'il existe.

obool IsOpenConditionSatisfied()
Renvoie vrai si la condition d'ouverture est spécifiée et si la date courante est dans la fenêtre de début de l'activité, lorsque celle-ci est spécifiée, et si le prédicat d'ouverture renvoie vrai s'il est spécifié.

obool IsCloseConditionSatisfied()
Renvoie vrai si la condition de fermeture est spécifiée et si la date courante est dans la fenêtre de fin de l'activité, lorsque celle-ci est spécifiée, et si le prédicat de fermeture renvoie vrai s'il est spécifié.

obool IsOpenConditionNoLongerSatisfiable()
Renvoie vrai si la condition d'ouverture est spécifiée et si la date courante est postérieure à la fenêtre de début de l'activité, lorsque celle-ci est spécifiée.

obool IsCloseConditionNoLongerSatisfiable()
Renvoie vrai si la condition d'ouverture est spécifiée et si la date courante est postérieure à la fenêtre de fin de l'activité, lorsque celle-ci est spécifiée.

obool HasOperationNotBegunAtMaxBegDate()
Renvoie vrai si l'activité est ouverte et si, selon le type de l'activité, une opération ou toutes les premières opérations en jeu à une profondeur quelconque et déjà allouée n'a ou n'ont pas encore eu un début d'exécution lorsque la fin de la fenêtre d'ouverture est atteinte. Renvoie faux dans les autres cas.

obool IsOptional() const
Renvoie vrai si une activité optionelle, ou si une activité optionelle contrainte telle que le descripteur N a une valeur inférieure au descripteur N1 (voir page dédiée) contient la présente activité comme élément à une profondeur quelconque, et faux sinon.

obool IsImmediateOptional() const
Renvoie vrai si une activité option contient la présente activité comme élément immediat, et faux sinon.

opActivityTab* GetOptionalContainers() const
Renvoie un tableau contenant les activités de type ACTIVITY_OPTIONAL qui contiennent la présente activité comme élément à une profondeur quelconque. Le tableau comprend aussi les optionnelles contraintes telles que le descripteur N a une valeur inférieure au descripteur N1 (voir page dédiée)

oActivityIteration* IsIterated() const
Renvoie l'activité itérative qui contient la présente activité comme élément à une profondeur quelconque, et NULL si ce n'est pas le cas.

oActivityIteration* IsImmediateIterated() const
Si cette activité est composante (unique) d'une activité itérative (forcément unique, par définition), la présente méthode renvoie cette activité itérative, et NULL sinon.

opActivityTab* GetIterationContainers()
Renvoie un tableau contenant les activités de type ACTIVITY_ITERATION qui contiennent la présente activité comme élément à une profondeur quelconque. Ce tableau ne contient normalement qu'un seul élément.

obool IsOpen()
Renvoie vrai si la situation de l'activité est OPEN ou IN_COURSE, et faux sinon.

obool IsJustOpen()
Renvoie vrai si la situation de l'activité est OPEN, et faux sinon.

ovoid CheckStillOpenAtSimulationEnd()
Teste si l'activité est encore ouverte en fin de simulation, et émet un avertissement le cas échéant. Généralement invoquée sur l'activité racine d'un plan.

opEntityTab* LastExecutingOperations()
Renvoie un sous-ensemble des opérations mise en jeu dans l'activité (à une profondeur quelconque) : seulement celles à la fois en cours d'exécution et suivies par aucune autre dans cette activité.

obool AreLastExecutingOperationsPermanent()
Renvoie vrai si les opérations renvoyées par la méthode ci-dessus sont toutes permanentes.

opEntityTab* LastOperations()
Renvoie un sous-ensemble des opérations mise en jeu dans l'activité (à une profondeur quelconque) : seulement celles suivies par aucune autre dans cette activité.

obool AreLastOperationsPermanent()
Renvoie vrai si les opérations renvoyées par la méthode ci-dessus sont toutes permanentes.

obool HasLastOperationPermanent()
Renvoie vrai si une des opérations renvoyées par la méthode ci-dessus est permanente.

oint LastActivityUpdatingDate()
Renvoie la date la plus tardive de mise à jour de l'opération parmi les dernières composantes possibles dans cette activité.

opEntityTab* LastPrimitives()
Renvoie un sous-ensemble des activités primitives mise en jeu dans l'activité (à une profondeur quelconque) : seulement celles suivies par aucune autre dans cette activité.

opEntityTab* FirstPrimitives()
Renvoie un sous-ensemble des activités primitives mise en jeu dans l'activité (à une profondeur quelconque) : seulement celles précédées par aucune autre dans cette activité.

opEntityTab* InCoursePrimitiveList()
Renvoie un sous-ensemble des activités primitives mise en jeu dans l'activité (à une profondeur quelconque) : seulement celles dont la situation est IN_COURSE.

opEntityTab* OpenPrimitiveList()
Renvoie un sous-ensemble des activités primitives mise en jeu dans l'activité (à une profondeur quelconque) : seulement celles dont la situation est OPEN ou IN_COURSE.

opEntityTab* OpenActivityList()
Renvoie un sous-ensemble des activités mise en jeu dans l'activité (à une profondeur quelconque) : seulement celles dont la situation est OPEN ou IN_COURSE.

opEntityTab* PrimitiveList()
Renvoie la liste des activités primitives mise en jeu dans l'activité.

ovoid AssignOperatedObjectToEachPrimitive(BasicEntity*)
Affecte l'entité passée en argument comme unique objet opéré de toutes les activités primitives mise en jeu dans l'activité.

opEntityDTab* NextActivityInSequences()
Renvoie une liste de couples d'activités. Le premier élément d'un couple est l'activité qui suit this dans une séquence (ActivityBefore ou ActivityMeeting). Le second est l'activité séquence elle-même. Aucun couple n'est placé dans la liste renvoyée si this n'est pas incluse dans une séquence. Si this est incluse dans une séquence en dernière position, le couple correspondant n'est pas placé dans la liste.

obool IsOrMayBeUniqueLast(Activity*)
Renvoie vrai si l'activité passée en argument est ou peut être la dernière composante de this, et faux sinon.

o Opérations

o Opérations de changement d'état

o Changements impératifs
La méthode MakeReadyToRun doit en principe être invoquée dans le programme de l'utilisateur. Ce n'est pas le cas des autres méthodes, qui ne sont normalement invoquées que dans les procédures prédéfinies de CONTROL DIESE. Elle figurent ici pour compléter la description du fonctionnement de ces procédures.

ovoid MakeReadyToRun()
Opère le changement d'état de SLEEPING à WAITING. Cet appel doit être effectué dès qu'on souhaite que l'activité puisse être examinée pour produire éventuellement des effets. De façon standard, ce message est adressé à l'activité racine d'un plan au début de la période de simulation, après la création en mémoire de l'activité.

ovoid UpdateStatus()

ovoid ResetDisjunctionInDepth()

ovoid DeleteDisjunctionInDepth()

ovoid PropagateSituationChangeToMothers()

opEntityTab* SearchRoots()

oActivity* HasUniqueRoot(int updown, Activity* source, Activity* root)

oActivity* RootActivity()

ovoid CleanLocalValidationAttributes()

ovoid CleanValidationFromChain()

ovoid RemoveFromValidationFromChain(Activity*)

ovoid TurnToSleeping()
Opère le changement d'état à la valeur SLEEPING pour l'activité qui reçoit le message et pour ses activités composantes, s'il elle en a.

ovoid TurnToOpen(int updown, Activity* source)

ovoid TurnToWaiting(int updown, Activity* source)

ovoid TurnToClosed(int updown, Activity* source)

ovoid TurnToNoLongerOpenable(int updown, Activity* source)

ovoid TurnToInCourse()
Affecte à l'activité l'état IN_COURSE, si elle ne l'a pas déjà et si elle n'est pas CANCELLED, puis propage cette valeur aux activités dont elle est composante. Lève l'exception PreconditionOnState si l'état n'est pas OPEN. Si l'activité qui reçoit ce message est composante d'une activité de type ACTIVITY_DISJUNCTION, toutes les autres activités alternatives de la disjonction sont annulées (passage à l'état CANCELLED). Si l'activité qui reçoit ce message est composante d'une activité de type ACTIVITY_SET, toutes les autres activités de la séquence sont mises en sommeil (passage à l'état SLEEPING).

ovoid TurnExecutingOperationToStop()
Exclusivement utilisé lors du traitement d'une ActivityCoending ou d'une ActivityEquality. Lorsqu'une composante devient CLOSED, on s'apprête à stopper toutes les opérations qui ne sont pas terminées (la situation devient TO_STOP). Si le degré de progression a été mis à jour à la date courante, on ferme la primitive, et la situation de l'opération devient TERMINATED.

o Propagation de changement d'état
Ces méthodes ne sont pas définies au niveau de la classe générale des activités, mais au niveau de ses sous-classes, puisqu'elles en traduisent pour partie le sens. Par exemple, une relation de type MEETING entre deux activités a1 et a2 implique que a2 soit ouverte dès que a1 est fermée. Ceci est codé dans la méthode UpdateIfSonClosed de la classe ActivityMeeting, déclenchée quand l'état de a1 passe à CLOSED.

ovoid PropagateWaitingToSons(Activity*)

ovoid PropagateOpenToSons(Activity*)

ovoid PropagateClosedToSons(Activity*)

ovoid PropagateNoLongerOpenableToSons(Activity*)

ovoid UpdateIfSonWaiting(Activity*)

ovoid UpdateIfSonOpen(Activity*)

ovoid UpdateIfSonClosed(Activity*)

ovoid UpdateIfSonNoLongerOpenable(Activity*)

o Tests d'exécutabilité

obool ValidateWaiting(C_UpDown, Activity*)

obool ValidateOpen(C_UpDown, Activity*)

obool ValidateClosed(C_UpDown, Activity*)

obool CheckWaitingGeneralPrecondition()

obool CheckOpenGeneralPrecondition(C_UpDown, Activity*)

obool CheckClosedGeneralPrecondition()

obool IsClosedAuthorizedByOperation()

obool CheckSonsIfWaiting()

obool CheckSonsIfWaiting(Activity*)

obool CheckSonsIfOpen()

obool CheckSonsIfOpen(Activity*)

obool CheckSonsIfClosed()

obool CheckSonsIfClosed(Activity*)

obool CheckIfSonWaiting(Activity*)

obool CheckIfSonOpen(Activity*)

obool CheckIfSonClosed(Activity*)

ovoid DisplaySituation(int k)
Affiche la situation de l'activité et de ses éléments. k est l'indentation initiale

ovoid DisplaySituation()
A le même effet que DisplaySituation(0)

ovoid DisplayOpenCloseConditions(int k)
Affiche la situation et les fenêtres d'ouverture/fermeture de l'activité et de ses éléments. k est l'indentation initiale

ovoid DisplayOpenCloseConditions()
A le même effet que DisplayOpenCloseConditions(0)


Cette classe n'a pas de classe descendante.

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