Modèle atomique constructeur

Description
La définition d'un nouveau modèle atomique passe par l'héritage vers la définition VLE du modèle atomique : devs::Dynamics. Le constructeur est alors obligatoire dans la classe que vous héritez.

Cette fonction a pour rôle de d'affecter des attributs de votre classe en fonction des données reçues par le fichier VPZ. Ces attributs formeront, dans l'appel à la fonction init, l'état initiale de votre modèle.

Le paramètre InitEventList est appelé pour prendre en charge les plans d'expériences au sein de VLE. Les plans d'expériences sont fournis par les balises conditions et condition du fichier VPZ.

Quand est-elle appelée ?
Le constructeur est comme son nom l'indique la première fonction membre appelée en C++. Elle l'est donc à la création du modèle, en début de simulation ou pendant la simulation dans le cas de l'ajout dynamique de modèles.

Elle prend en paramètre un objet qui indique l'initialisation des variables et des paramètres de votre modèle reçus du plan d'expérience.

Prototype

 * le paramètre init est une structure qui contient, entre autre, le noeud du graphe de modèles auquel se rattache le comportement.
 * le paramètre events est une tableau associatif entre un nom de port d'initialisation et un valeur. Ces informations sont issues du plan d'expérience provenant du fichier VPZ.

Comportement par défaut
Le comportement par défaut du constructeur dans la classe Dynamics est de sauvegarder la référence au noeud du graphe de modèle DEVS contenu dans le paramètre init</tt> et de ne pas interpréter le paramètre events</tt>.

Quelques exemples d'utilisation

 * Le constructeur minimaliste et obligatoire. Le C++ demande d'initialiser obligatoirement le modèle hérité devs::Dynamics</tt>.


 * Initialisation de variables définies comme attribut de la classe :


 * Récupération des variables x et y du plan :

La partie condition initiale du fichier VPZ est alors la suivante :


 * Affichage d'information sur les connexion entrantes et sortantes :

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