diff --git a/include/fsm.h b/include/fsm.h index 88fd96d..700fe08 100644 --- a/include/fsm.h +++ b/include/fsm.h @@ -50,15 +50,15 @@ typedef struct disp_list {int value; struct disp_list *suiv;} disp_list ; typedef struct unit {int event; struct unit *prev; struct unit *next;} unit; typedef struct {unit *first; unit *last;} journal; // structure d'accès au journal -void fsm_journal_init (journal *l); // initialise -void fsm_journal_clear (journal *l); // vide tout le journal -int fsm_journal_push_back (journal *l, int event); // ajoute un évènement en fin de journal -int fsm_journal_push_front (journal *l, int event); // ajoute un évènement en début de journal -int fsm_journal_pop_back (journal *l); // retire un évènement en fin de journal -int fsm_journal_pop_front (journal *l); // retire un évènement en début de journal -int fsm_journal_length (journal l); // nombre d'évènements dans le journal -void fsm_journal_seek (journal *jj, int event); // recherche un évènement dans le journal -void fsm_journal_view (journal l); // affiche tout le journal +void fsm_journal_init (journal *jj); // initialise +void fsm_journal_clear (journal *jj); // vide tout le journal +int fsm_journal_push_back (journal *jj, int event); // ajoute un évènement en fin de journal +int fsm_journal_push_front (journal *jj, int event); // ajoute un évènement en début de journal +int fsm_journal_pop_back (journal *jj); // retire un évènement en fin de journal +int fsm_journal_pop_front (journal *jj); // retire un évènement en début de journal +int fsm_journal_length (journal jj); // nombre d'évènements dans le journal +void fsm_journal_seek (journal jj, int event); // recherche un évènement dans le journal +void fsm_journal_view (journal jj); // affiche tout le journal void fsm_journal_test(); // --------------------------------------------------------------- WIP ------ // ref: sudo cat /var/log/messages diff --git a/src/fsm/journal.c b/src/fsm/journal.c index fba0285..1baae17 100644 --- a/src/fsm/journal.c +++ b/src/fsm/journal.c @@ -119,9 +119,15 @@ int fsm_journal_length (journal jj) return nb; } -void fsm_journal_seek (journal *jj, int event) +void fsm_journal_seek (journal jj, int event) { - + unit *a_unit = jj.first; + while (a_unit) + { + if (event == a_unit->event) + printf ("> event %d found in journal\n", a_unit->event); + a_unit = a_unit->next; + } } void fsm_journal_view (journal jj) @@ -160,6 +166,7 @@ void fsm_journal_test() printf ("push front > %d\n", fsm_journal_push_front (&exemple, 0)); fsm_journal_view (exemple); + fsm_journal_seek (exemple, 2); printf ("clear list\n"); fsm_journal_clear (&exemple);