Modèle atomique fonction requète

Description
La fonction de gestion des événements instantanés ne fait pas partie de la spécification DEVS classique ou DEVS parallèle. Elle est fournie dans la spécification du simulateur de VLE. Son but est de gérer de manière automatique les événements de type questions-réponses entre deux modèles.

La relation question-réponse représente l'envoi d'un message à un modèle dans le but que celui-ci retourne une information directement à la même date. Dans DEVS, la création de cette information force à passer dans une transition interne instantanée (où la durée dans cet état est égale à 0) afin de pouvoir émettre une donnée. Ce changement d'état impose souvent des contraintes supplémentaires au modélisateur.

Dans VLE, nous proposons un type particulier d'événement externe qui permet de gérer ces relations entre modèles.

Quand est-elle appelée ?
La fonction request est appelée, tout comme l'événement externe lorque votre modèle est perturbé par un ou plusieurs événements instantanés. L'appel de cette fonction à lieu après un appel de la fonction d'avancement du temps qui réagit à un événement interne ou à un événement externe

Prototype

 * event : l'événement instantané que vous venez de recevoir.
 * time : la date fourni pas le simulateur, l'événement instantané ne contenant pas la date.
 * output : un paramètre de sortie dans lequel vous devez ajouter des événements externes ou instantanés.
 * À noter que la fonction est const ce qui signifie, en C++, que cette fonction ne peut changer l'état des variables de votre modèle.

Comportement par défaut
Le comportement par défaut de la fonction processExternalEvents est de ne rien faire.

Quelques exemples d'utilisation

 * Gestion des événements d'interrogation sur les ports d'entrée positionX?, positionY? et position? qui retournent sur les ports de sorties positionX, positionY et position respectivement, la coordonnée x, la coordonnée y et un événements composé de deux valeurs x</tt> et y</tt> :

Ensemble de l'API de la classe devs::Dynamics</tt> : constructeur, destructeur, init, finish, initialisation, transition interne, avancement du temps, transition externe, sortie, conflit, observation, question-reponse