Dans ce premier exemple, on va réutiliser l'exemple 1 du sous-chapitre précédent (Exemple n°1) mais en modifiant le point d'entrée exit
.
On va utiliser les deux services en tant que singleton ici.
Pour commencer, voyons le .config
:
csv.config
<time-loop name="example1">
Ici, on voit les deux singletons que l'on va utiliser.
Voici le point d'entrée start-init
:
SimpleTableComparatorExample1Module.cc
Le point d'entrée compute-loop
:
SimpleTableComparatorExample1Module.cc
Enfin, voyons le point d'entrée exit
:
SimpleTableComparatorExample1Module.cc
On peut voir un exemple minimal d'utilisation du comparator. On commence par récupérer le pointeur vers le singleton puis on initialise le comparator en lui donnant un pointeur vers un objet ayant comme interface ISimpleTableOutput.
Ensuite, on regarde si un fichier de référence existe. S'il n'y en a pas, on le crée avec les valeurs de table
.
En effet, le service SimpleCsvComparator
est aussi capable d'écrire des fichiers. Il va utiliser les informations du ISimpleTableOutput pour trouver le chemin.
Si on regarde dans le point d'entrée init
, on peut voir l'initialisation du service SimpleCsvOutput
:
SimpleCsvComparator
va utiliser ces informations pour écrire le fichier de référence. Dans cet exemple, il va aller écrire le fichier ici :
Si le fichier de référence existe déjà, le comparator va le comparer avec les valeurs de l'objet table
.
Si les valeurs sont identiques, on aura le message Mêmes valeurs !!!
dans la sortie, sinon on aura Valeurs différentes :(
(et un code d'erreur 1
).
À la fin, le service SimpleCsvOutput
écrit son fichier, comme d'habitude.