fonction fsm_journal_seek() implémentée (easy)

This commit is contained in:
Jean Sirmai 2024-09-11 08:13:00 +02:00
parent c46c0c0699
commit 7f7c390b61
Signed by: jean
GPG Key ID: FB3115C340E057E3
2 changed files with 18 additions and 11 deletions

View File

@ -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 {int event; struct unit *prev; struct unit *next;} unit;
typedef struct {unit *first; unit *last;} journal; // structure d'accès au journal typedef struct {unit *first; unit *last;} journal; // structure d'accès au journal
void fsm_journal_init (journal *l); // initialise void fsm_journal_init (journal *jj); // initialise
void fsm_journal_clear (journal *l); // vide tout le journal void fsm_journal_clear (journal *jj); // 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_back (journal *jj, 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_push_front (journal *jj, 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_back (journal *jj); // 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_pop_front (journal *jj); // retire un évènement en début de journal
int fsm_journal_length (journal l); // nombre d'évènements dans le 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_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_view (journal jj); // affiche tout le journal
void fsm_journal_test(); void fsm_journal_test();
// --------------------------------------------------------------- WIP ------ // --------------------------------------------------------------- WIP ------
// ref: sudo cat /var/log/messages // ref: sudo cat /var/log/messages

View File

@ -119,9 +119,15 @@ int fsm_journal_length (journal jj)
return nb; 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) 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)); printf ("push front > %d\n", fsm_journal_push_front (&exemple, 0));
fsm_journal_view (exemple); fsm_journal_view (exemple);
fsm_journal_seek (exemple, 2);
printf ("clear list\n"); fsm_journal_clear (&exemple); printf ("clear list\n"); fsm_journal_clear (&exemple);