L'exemple 2 est presque identique à l'exemple 1, mise à part la définition du nom du tableau (et du fichier) et du nom du sous-répertoire.
En tant que singleton, notre service n'a pas accès au jeu de données, donc il faut passer par l'un des modules pour transférer les informations.
L'exemple 2 montre comment faire ça simplement.
Pour commencer, voyons les options du fichier axl :
SimpleTableOutputExample2.axl
Si vous jetez un oeil dans le .axl
du service (ici : Service 'SimpleCsvOutput'), vous pourrez constater que c'est identique. En effet, dans le cas du singleton, on utilise notre module principal pour récupérer les informations dont a besoin notre service.
Autre chose à noter : la valeur par défaut default=""
. Mettre une valeur par défaut vide nous permet de déterminer si l'utilisateur a spécifié une valeur ou non dans le .arc
. Plus tard, dans le module, on pourrait dire que s'il n'y a pas de valeurs sur les deux options, alors c'est que l'utilisateur ne veut simplement pas de sortie csv. (c'est la méthode utilisée dans QAMA).
Voici le .arc
correspondant :
SimpleTableOutputExample2.arc
Comme expliqué au-dessus, c'est le module qui gère les deux options, donc on se retrouve dans la partie "option du module".
Voyons le point d'entrée start-init
:
SimpleTableOutputExample2Module.cc
C'est le module qui gère les deux options du service, y compris les valeurs par défaut. Si l'utilisateur ne spécifie pas de valeur pour l'option tableName
dans le .arc
, on définit un nom par défaut (sachant que le service le fait aussi si l'on appelle table->init()
sans paramètres).
table->init()
est différent d'un appel à init comme cela : table->init("")
! L'un prendra une valeur par défaut, l'autre aura un nom vide et le fichier de sortie n'aura simplement pas de noms (juste l'extension).Ce point d'entrée est identique à celui de l'exemple 1.
Enfin, voyons le point d'entrée exit
:
SimpleTableOutputExample2Module.cc
La ligne
permet de savoir si l'utilisateur a entré au moins une des options. Si c'est le cas, alors on vérifie la valeur par défaut et on écrit le fichier.
Si ce n'est pas le cas, alors on n'écrit pas de fichier.