Conditional/fr

Si un modèle nécessite des paramètres et que l'on désire gérer ces paramètres depuis GVLE, par exemple, ou plus généralement depuis le fichier de description du modèle global et du plan d'expérience associé (le fichier VPZ) alors il faut :
 * définir les conditions expérimentales ;
 * les rattacher aux modèles soumis à ces conditions
 * et accéder, au sein du modèle, aux valeurs associées aux conditions.

Dans ce tutoriel, nous allons seulement aborder la troisième partie. Celle qui a une implication dans l'écriture proprement dit du modèle.

Le constructeur d'un modèle possède deux paramètres :
 * une structure pour l'initialisation du modèle dans le contexte VLE : vle::devs::DynamicsInit ;
 * une liste d'événements d'initialisation qui transporte les valeurs associées aux conditions appliquées au modèle : vle::devs::InitEventList

Seule la liste nous intéresse et nous allons récupérer les valeurs qui nous intéressent au sein de cette liste et initialiser les paramètres de notre modèle.

Dans notre exemple, la méthode get permet d'accéder à la valeur attachée à une condition. Cette méthode admet un seul paramètre, le nom de la condition. Le type de retour est une référence constante sur le type abstrait Value : const vle::value::Value&. Il est donc nécessaire de faire appel à des méthodes de conversion. Dans notre exemple, les conditions sont des réels, on convertit donc les valeurs en double grâce à la méthode vle::value::toDouble(...).

VLE autorise les types suivants :
 * types simples : double, integer, string et boolean ;
 * types composés : set, tuple, table, map et matrix ;
 * xml

Chaque type possède sa propre fonction de conversion. Pour les types simples, les fonctions de conversion donnent des valeurs compatibles avec les types C++. En revanche, pour les types composés, il n'existe pas de conversion directe mais la bibliothèque Value offre des méthodes de parcours de type STL.

Après la récupération de l'ensemble nommé list dans les conditions de l'expérience, on effectue une boucle pour convertir chaque réel de l'ensemble.