gem-graph-client/doc/docbook/dd/d01/fsm_8h.xml

2199 lines
92 KiB
XML

<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="_fsm_8h" xml:lang="en-US">
<title>include/fsm.h File Reference</title>
<indexterm><primary>include/fsm.h</primary></indexterm>
<para>
<para>FSM (Finite State Machine) header. </para>
</para>
<programlisting linenumbering="unnumbered">#include &lt;stdbool.h&gt;<?linebreak?>#include &lt;stddef.h&gt;<?linebreak?>#include &lt;string.h&gt;<?linebreak?>#include &lt;gtk-4.0/gtk/gtk.h&gt;<?linebreak?></programlisting>Include dependency graph for fsm.h:<para>
<informalfigure>
<mediaobject>
<imageobject>
<imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="../../d3/d0a/fsm_8h__incl.svg"></imagedata>
</imageobject>
</mediaobject>
</informalfigure>
</para>
This graph shows which files directly or indirectly include this file:<para>
<informalfigure>
<mediaobject>
<imageobject>
<imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="../../d8/d07/fsm_8h__dep__incl.svg"></imagedata>
</imageobject>
</mediaobject>
</informalfigure>
</para>
<simplesect>
<title>Classes </title>
<itemizedlist>
<listitem><para>struct <link linkend="_structfsm__log__struct__unit">fsm_log_struct_unit</link></para>
<para>structure of a log element </para>
</listitem>
<listitem><para>struct <link linkend="_structfsm__log__struct">fsm_log_struct</link></para>
<para>required to initialise a double-chained list </para>
</listitem>
<listitem><para>struct <link linkend="_structfsm__struct__list__tool">fsm_struct_list_tool</link></para>
<para>phantom documentation </para>
</listitem>
<listitem><para>struct <link linkend="_structfsm__struct__list__data">fsm_struct_list_data</link></para>
<para>phantom documentation </para>
</listitem>
<listitem><para>struct <link linkend="_structfsm__struct__list__disp">fsm_struct_list_disp</link></para>
<para>phantom documentation </para>
</listitem>
</itemizedlist>
</simplesect>
<simplesect>
<title>Macros </title>
<itemizedlist>
<listitem><para><anchor xml:id="_fsm_8h_1ac1cb62e505e312a61d817106dc0ff98d"/>#define <emphasis role="strong">LOG_MAX_LENGTH</emphasis>&#160;&#160;&#160;255</para>
<para>arbitrary </para>
</listitem>
<listitem><para><anchor xml:id="_fsm_8h_1a7af169265cd716e940b65232410d462e"/>#define <emphasis role="strong">n_rules</emphasis>&#160;&#160;&#160;128</para>
<para>arbitrary </para>
</listitem>
<listitem><para><anchor xml:id="_fsm_8h_1a1c57f0fbc36487a6b6a61a688968bd5f"/>#define <emphasis role="strong">n_objects</emphasis>&#160;&#160;&#160;32</para>
<para>arbitrary too, </para>
</listitem>
<listitem><para><anchor xml:id="_fsm_8h_1a6ac624784cce4cd90e2845b9a2d86412"/>#define <emphasis role="strong">n_situations</emphasis>&#160;&#160;&#160;128</para>
<para>and so on... </para>
</listitem>
</itemizedlist>
</simplesect>
<simplesect>
<title>Typedefs </title>
<itemizedlist>
<listitem><para>typedef struct <link linkend="_structfsm__log__struct__unit">fsm_log_struct_unit</link> <link linkend="_fsm_8h_1abbf172c94fcf983ce748a5edf5eac136">fsm_log_struct_unit</link></para>
<para>structure of a log element </para>
</listitem>
<listitem><para><anchor xml:id="_fsm_8h_1a78376e470b28fc9869a090d21f2bf9a0"/>typedef struct <link linkend="_structfsm__struct__list__tool">fsm_struct_list_tool</link> <emphasis role="strong">fsm_struct_list_tool</emphasis></para>
<para>phantom documentation </para>
</listitem>
<listitem><para><anchor xml:id="_fsm_8h_1a1448aeec62ef3a2adf8f4d364c794ab0"/>typedef struct <link linkend="_structfsm__struct__list__data">fsm_struct_list_data</link> <emphasis role="strong">fsm_struct_list_data</emphasis></para>
<para>phantom documentation </para>
</listitem>
<listitem><para><anchor xml:id="_fsm_8h_1ae905cedfa44ca2088de1b4cb5d3777db"/>typedef struct <link linkend="_structfsm__struct__list__disp">fsm_struct_list_disp</link> <emphasis role="strong">fsm_struct_list_disp</emphasis></para>
<para>phantom documentation </para>
</listitem>
</itemizedlist>
</simplesect>
<simplesect>
<title>Enumerations </title>
<itemizedlist>
<listitem><para>enum <link linkend="_fsm_8h_1ad0b0544b0708e6bed5b37adc34667b2a">fsm_enum_log_severity</link> { <?linebreak?><link linkend="_fsm_8h_1ad0b0544b0708e6bed5b37adc34667b2aa651d8a47a6976d6fe05c0e03fb4cd2d0">FATAL</link>
, <link linkend="_fsm_8h_1ad0b0544b0708e6bed5b37adc34667b2aa2fd6f336d08340583bd620a7f5694c90">ERROR</link>
, <link linkend="_fsm_8h_1ad0b0544b0708e6bed5b37adc34667b2aa74dac7ac23d5b810db6d4067f14e8676">WARN</link>
, <link linkend="_fsm_8h_1ad0b0544b0708e6bed5b37adc34667b2aa748005382152808a72b1a9177d9dc806">INFO</link>
, <?linebreak?><link linkend="_fsm_8h_1ad0b0544b0708e6bed5b37adc34667b2aa0593585da9181e972974c1274d8f2b4f">DEBUG</link>
, <link linkend="_fsm_8h_1ad0b0544b0708e6bed5b37adc34667b2aa7fa27e82c6c4f69434225ed81e5d151e">TRACE</link>
}</para>
<para>Conforms to canonical log levels: FATAL, ERROR, WARN, INFO, DEBUG, TRACE. </para>
</listitem>
<listitem><para>enum <link linkend="_fsm_8h_1aa39ee94b91ea55dff3a2b25eac9c16d6">fsm_enum_log_source</link> { <?linebreak?><link linkend="_fsm_8h_1aa39ee94b91ea55dff3a2b25eac9c16d6a0159491ea913604389155db907e0d1c0">SOURCE</link>
, <link linkend="_fsm_8h_1aa39ee94b91ea55dff3a2b25eac9c16d6a09aa9e75617e9d8719738ca163c09137">TARGET</link>
, <emphasis role="strong">LOG</emphasis>
, <emphasis role="strong">FSM</emphasis>
, <?linebreak?><emphasis role="strong">PREFER</emphasis>
, <emphasis role="strong">MAIN</emphasis>
, <emphasis role="strong">APP</emphasis>
, <emphasis role="strong">WIDGETS</emphasis>
, <?linebreak?><emphasis role="strong">SIGNAL</emphasis>
, <link linkend="_fsm_8h_1aa39ee94b91ea55dff3a2b25eac9c16d6a6e0f01f52fc70b478a06d943db6235cf">WINDOW</link>
, <emphasis role="strong">DIALOG_WINDOW</emphasis>
, <emphasis role="strong">MODAL_WINDOW</emphasis>
, <?linebreak?><emphasis role="strong">TEXT_WINDOW</emphasis>
, <emphasis role="strong">AUTO_NOTIFICATION</emphasis>
, <link linkend="_fsm_8h_1aa39ee94b91ea55dff3a2b25eac9c16d6a1733882035dc059d3893a09661b52eb9">TOPBAR</link>
, <emphasis role="strong">TOPBAR_LEFT</emphasis>
, <?linebreak?><emphasis role="strong">TOPBAR_CENTER</emphasis>
, <emphasis role="strong">TOPBAR_RIGHT</emphasis>
, <link linkend="_fsm_8h_1aa39ee94b91ea55dff3a2b25eac9c16d6ab788d9e2cde88d51a5cda409f75db490">PAGE</link>
, <emphasis role="strong">SYNTH_PAGE</emphasis>
, <?linebreak?><emphasis role="strong">STATE_PAGE</emphasis>
, <emphasis role="strong">RULES_PAGE</emphasis>
, <emphasis role="strong">MEASURES_PAGE</emphasis>
, <emphasis role="strong">RESULTS_PAGE</emphasis>
, <?linebreak?><emphasis role="strong">SYNTH_GLAREA</emphasis>
, <emphasis role="strong">SYNTH_ALL_RESULTS</emphasis>
, <emphasis role="strong">SYNTH_TIME_DEP_RESULTS</emphasis>
, <emphasis role="strong">SYNTH_TIME_INDEP_RESULTS</emphasis>
, <?linebreak?><emphasis role="strong">STATE_TOP</emphasis>
, <emphasis role="strong">STATE_BOTTOM</emphasis>
, <emphasis role="strong">STATE_GLAREA</emphasis>
, <emphasis role="strong">STATE_CAMERA</emphasis>
, <?linebreak?><emphasis role="strong">RULE_GEOMETRY</emphasis>
, <emphasis role="strong">RULE_GLAREA</emphasis>
, <emphasis role="strong">RULE_CAMERA</emphasis>
, <emphasis role="strong">RULE_ALGEBRA</emphasis>
, <?linebreak?><emphasis role="strong">RULE_CONDITION</emphasis>
, <emphasis role="strong">RULE_ASSIGN</emphasis>
, <emphasis role="strong">RULE_ID</emphasis>
, <emphasis role="strong">RULES_TREE</emphasis>
, <?linebreak?><emphasis role="strong">RULES_COMPARE</emphasis>
, <emphasis role="strong">RULES_USE</emphasis>
, <emphasis role="strong">MEASURES_TOOLS</emphasis>
, <emphasis role="strong">MEASURES__ACTIVITY</emphasis>
, <?linebreak?><emphasis role="strong">MEASURES__DISPLAY</emphasis>
, <emphasis role="strong">RESULTS</emphasis>
, <emphasis role="strong">TIME_DEP_RESULTS</emphasis>
, <emphasis role="strong">TIME_INDEP_RESULTS</emphasis>
, <?linebreak?><emphasis role="strong">WIDGET</emphasis>
, <emphasis role="strong">BUTTON</emphasis>
, <emphasis role="strong">SCROLL</emphasis>
, <emphasis role="strong">GLAREA</emphasis>
, <?linebreak?><emphasis role="strong">TEXT</emphasis>
, <emphasis role="strong">LABEL</emphasis>
, <emphasis role="strong">TREE</emphasis>
, <emphasis role="strong">SLIDER</emphasis>
, <?linebreak?><emphasis role="strong">EXPANDER</emphasis>
, <emphasis role="strong">ENTRY</emphasis>
, <emphasis role="strong">ON_SWITCH_STATE_RULES_DATA</emphasis>
, <emphasis role="strong">SLIDER_X</emphasis>
, <?linebreak?><emphasis role="strong">SLIDER_Y</emphasis>
, <emphasis role="strong">SLIDER_Z</emphasis>
, <emphasis role="strong">SLIDER_A</emphasis>
, <emphasis role="strong">SLIDER_B</emphasis>
, <?linebreak?><emphasis role="strong">SLIDER_C</emphasis>
}</para>
<para>arbitrary values that can help the logging filter work more efficiently </para>
</listitem>
<listitem><para><anchor xml:id="_fsm_8h_1a7804536bf1011457f3d850e350772dca"/>enum <link linkend="_fsm_8h_1a7804536bf1011457f3d850e350772dca">fsm_enum_exec_edit</link> { <emphasis role="strong">EXEC</emphasis>
, <emphasis role="strong">EDIT</emphasis>
}</para>
<para>phantom documentation </para>
</listitem>
<listitem><para><anchor xml:id="_fsm_8h_1aa1132278a581ee80526ff5806e6ffa04"/>enum <link linkend="_fsm_8h_1aa1132278a581ee80526ff5806e6ffa04">fsm_enum_state_rules_data</link> { <emphasis role="strong">SYNTH</emphasis>
, <emphasis role="strong">STATE</emphasis>
, <emphasis role="strong">RULES</emphasis>
, <emphasis role="strong">DATA</emphasis>
}</para>
<para>phantom documentation </para>
</listitem>
<listitem><para><anchor xml:id="_fsm_8h_1a5063f92d2c3765c7a4b664f5fc46143f"/>enum <link linkend="_fsm_8h_1a5063f92d2c3765c7a4b664f5fc46143f">fsm_enum_store_restore_reset</link> { <emphasis role="strong">STORE</emphasis>
, <emphasis role="strong">RESTORE</emphasis>
, <emphasis role="strong">RESET</emphasis>
}</para>
<para>phantom documentation </para>
</listitem>
<listitem><para><anchor xml:id="_fsm_8h_1a06801f1f421dca2f4390645cb5b53c0c"/>enum <link linkend="_fsm_8h_1a06801f1f421dca2f4390645cb5b53c0c">fsm_enum_measure_type</link> { <emphasis role="strong">DATE_RULE_EXEC</emphasis>
, <emphasis role="strong">RULE_EXEC_NB</emphasis>
, <emphasis role="strong">OBJECT_NB</emphasis>
, <emphasis role="strong">ELAPSED_TIME</emphasis>
}</para>
<para>phantom documentation </para>
</listitem>
</itemizedlist>
</simplesect>
<simplesect>
<title>Functions </title>
<itemizedlist>
<listitem><para>void <link linkend="_fsm_8h_1a50ccfd1b874b1f23e1ea38c346dc880c">fsm_publish_log</link> (<link linkend="_structfsm__log__struct">fsm_log_struct</link> jj)</para>
<para>publish all the logs today just print in the console TODO &gt; in a file </para>
</listitem>
<listitem><para>void <link linkend="_fsm_8h_1ae0dbc2611e12fd1f4da5835687dcbbb2">fsm_init_log</link> (<link linkend="_structfsm__log__struct">fsm_log_struct</link> *jj)</para>
<para>init the journal </para>
</listitem>
<listitem><para>void <link linkend="_fsm_8h_1ac649e65c2bf355488f451154db5aca20">fsm_add_log_event</link> (<link linkend="_structfsm__log__struct">fsm_log_struct</link> *jj, const char *file_source, const char *function_source, const char *string_value)</para>
<para>add an event </para>
</listitem>
<listitem><para>void <link linkend="_fsm_8h_1a84756e3910c9f8b9b53834a74c67406e">fsm_clear_log</link> (<link linkend="_structfsm__log__struct">fsm_log_struct</link> *jj, const char *file_source, const char *function_source, const char *string_value)</para>
<para>usefulness ? (systematic ^c) </para>
</listitem>
<listitem><para>long <link linkend="_fsm_8h_1a4404da8b9abd927d360136e9b7094cca">fsm_pop_back_log</link> (<link linkend="_structfsm__log__struct">fsm_log_struct</link> *jj, const char *file_source, const char *function_source, const char *string_value)</para>
<para>remove an event </para>
</listitem>
<listitem><para>int <link linkend="_fsm_8h_1a0d06efb349076f5520325c8fc65fba35">fsm_get_log_length</link> (<link linkend="_structfsm__log__struct">fsm_log_struct</link> jj)</para>
<para>get journal_length </para>
</listitem>
<listitem><para>void <link linkend="_fsm_8h_1af744a631174ddce0fe824ea375c57197">fsm_seek_log</link> (<link linkend="_structfsm__log__struct">fsm_log_struct</link> jj, long usec, const char *file_source, const char *function_source, const char *string_value)</para>
<para>seek for an event </para>
</listitem>
<listitem><para>void <link linkend="_fsm_8h_1ab34d58241602f3a181ce2280516a3fb1">fsm_log_publication_request</link> ()</para>
<para>This request is called only once, by <link linkend="_main_8c_1a3c04138a5bfe5d72780bb7e82a18e627">main()</link>, just after closing the app and before ending the program. </para>
</listitem>
<listitem><para>void <link linkend="_fsm_8h_1a1c4245816950e71cae94f99b59c417a9">fsm_add_log</link> (int severity, int source, const char *file_source, const char *function_source, const char *string_value)</para>
<para>It is mandatory for any event to call this function to be published in the journal. </para>
</listitem>
<listitem><para>void <link linkend="_fsm_8h_1a9d131c81f05d5ee502b715db0e4e172a">fsm_init</link> (char *message)</para>
<para>fsm init is the first function called by <link linkend="_main_8c">main.c</link> It initiates the journal and the four lists: &apos;measures&apos;, &apos;results&apos;, &apos;displayables results&apos; and &apos;preferences&apos;. </para>
</listitem>
<listitem><para>void <link linkend="_fsm_8h_1aa02db2c62f7507eabfcc9a41f0e660b6">fsm_list_init_preferences</link> ()</para>
</listitem>
<listitem><para>void <link linkend="_fsm_8h_1a5da29952715596bf17643f907bd64daf">fsm_list_init_measures</link> ()</para>
</listitem>
<listitem><para>void <link linkend="_fsm_8h_1ae228c78b1697ffd299d415ce2bdce515">fsm_list_init_results</link> ()</para>
</listitem>
<listitem><para>void <link linkend="_fsm_8h_1a8eaa768708ebc21d710a8cc6144af1d3">fsm_list_init_displayables</link> ()</para>
</listitem>
<listitem><para>int <link linkend="_fsm_8h_1a9123915ffd10fe1ae18254898b1c0ebf">fsm_get_exec_edit</link> ()</para>
<para>some client pages (in particular &quot;state&quot; and &quot;rules&quot;) will be displayed and behave differently depending on whether the fsm is in edit or run state. </para>
</listitem>
<listitem><para>int <link linkend="_fsm_8h_1a90ab14081a88752d3721947a4922ee25">fsm_get_state_rules_data</link> ()</para>
<para>The value of the static int choice_STATE_RULES_DATA can be one of the enum include/fsm enum fsm_enum_state_rules_data. </para>
</listitem>
<listitem><para>void <link linkend="_fsm_8h_1a1f8ada2e7bb701277fc6c5a378b93c88">fsm_set_exec_edit</link> (int value)</para>
<para>setter for the static value: &apos;choice_STATE_RULES_DATA&apos; (in this file) </para>
</listitem>
<listitem><para>void <link linkend="_fsm_8h_1a1cd2f8cf1891095e1496c76b17aed7f2">fsm_set_state_rules_data</link> (int value)</para>
<para>setter for the static value: &apos;choice_STATE_RULES_DATA&apos; (in this file) </para>
</listitem>
<listitem><para>void <link linkend="_fsm_8h_1a42a491a3a432cf572b3c2ed84a00d927">fsm_set_store_restore_reset</link> (int choice, int value)</para>
</listitem>
<listitem><para>bool <link linkend="_fsm_8h_1a0b0231a311d0e85723ef9fcf38be88e3">fsm_get_preferences_state</link> ()</para>
<para>getter for the static boolean: &apos;preferences_have_been_modified&apos; </para>
</listitem>
<listitem><para>void <link linkend="_fsm_8h_1a770bcaeb0bd6f81cddcc3cd506468fff">fsm_set_preferences_modified</link> (bool value)</para>
<para>setter for the static boolean: &apos;preferences_have_been_modified&apos; </para>
</listitem>
<listitem><para>void <link linkend="_fsm_8h_1a6c711a88f128da33895ebd6cdf96ed66">fsm_add_measure</link> (char *measure_name)</para>
</listitem>
<listitem><para>void <link linkend="_fsm_8h_1ac59294a7ff6934d0704c85aaf08dc268">fsm_add_result</link> (char *result_name)</para>
</listitem>
<listitem><para>void <link linkend="_fsm_8h_1aa69a9ce07b26ad1863960c6f0d1303b5">fsm_add_displayable</link> (char *displayable_name)</para>
</listitem>
<listitem><para>void <link linkend="_fsm_8h_1abb1b857c9ec1ab39d6cb7cdf683a08d1">fsm_reset_all_situations_values</link> (int value)</para>
</listitem>
<listitem><para>void <link linkend="_fsm_8h_1ae5d5ccdff72b50a67c62ae920224c927">fsm_tools_list_insert</link> (<link linkend="_structfsm__struct__list__tool">fsm_struct_list_tool</link> **tl, int value)</para>
</listitem>
<listitem><para>int <link linkend="_fsm_8h_1a680078a92dca5a303408d5d997b47848">fsm_tools_list_pop</link> (<link linkend="_structfsm__struct__list__tool">fsm_struct_list_tool</link> **tl)</para>
</listitem>
<listitem><para>int <link linkend="_fsm_8h_1a5849dc2b70ef4683f15e6f4b33575780">fsm_tools_list_length</link> (<link linkend="_structfsm__struct__list__tool">fsm_struct_list_tool</link> *tl)</para>
</listitem>
<listitem><para>void <link linkend="_fsm_8h_1ac25c0b170bac58e699bb9e1533393b6a">fsm_tools_list_clear</link> (<link linkend="_structfsm__struct__list__tool">fsm_struct_list_tool</link> **tl)</para>
</listitem>
<listitem><para>void <link linkend="_fsm_8h_1a1c87d4ebbff9faab298659b295b5ea15">fsm_tools_list_view</link> (<link linkend="_structfsm__struct__list__tool">fsm_struct_list_tool</link> *tl)</para>
</listitem>
<listitem><para>void <link linkend="_fsm_8h_1a274e703d76bfc06daa46ec5924187fa3">fsm_tools_list_test</link> ()</para>
</listitem>
<listitem><para>void <link linkend="_fsm_8h_1ae81ba1733710f5b2db1a5b253d7adaf7">fsm_rule_trig_measure</link> (int rule_id, int object_id, int measure_id)</para>
</listitem>
<listitem><para>void <link linkend="_fsm_8h_1aeb8e63af534703319fa3d909f166501c">fsm_add_data</link> (<link linkend="_structfsm__struct__list__data">fsm_struct_list_data</link> d, int *p_data, int *p_target)</para>
<para>phantom documentation </para>
</listitem>
<listitem><para>int <link linkend="_fsm_8h_1a51424f38912d7ac0f5df50d6f073bfff">fsm_get_data</link> (<link linkend="_structfsm__struct__list__data">fsm_struct_list_data</link> d, int from, int to)</para>
<para>phantom documentation </para>
</listitem>
<listitem><para>void <link linkend="_fsm_8h_1a9682b83c800a1d48695a58744997d4d8">fsm_remove_data</link> (<link linkend="_structfsm__struct__list__data">fsm_struct_list_data</link> d, int *p_data)</para>
<para>phantom documentation </para>
</listitem>
</itemizedlist>
</simplesect>
<section>
<title>Detailed Description</title>
<para>FSM (Finite State Machine) header. </para>
<para>This file is part of Gem-graph. </para>
</section>
<section>
<title>Typedef Documentation</title>
<anchor xml:id="_fsm_8h_1abbf172c94fcf983ce748a5edf5eac136"/><section>
<title>fsm_log_struct_unit</title>
<indexterm><primary>fsm_log_struct_unit</primary><secondary>fsm.h</secondary></indexterm>
<indexterm><primary>fsm.h</primary><secondary>fsm_log_struct_unit</secondary></indexterm>
<para><computeroutput>typedef struct <link linkend="_structfsm__log__struct__unit">fsm_log_struct_unit</link> <link linkend="_structfsm__log__struct__unit">fsm_log_struct_unit</link></computeroutput></para><para>
<para>structure of a log element </para>
</para>
<para><formalpara><title>See also</title>
<para><link linkend="_fsm_8h_1a1c4245816950e71cae94f99b59c417a9">fsm_add_log()</link> </para>
<para><link linkend="_fsm_8h_1ac649e65c2bf355488f451154db5aca20">fsm_add_log_event()</link> </para>
</formalpara>
</para>
</section>
</section>
<section>
<title>Enumeration Type Documentation</title>
<anchor xml:id="_fsm_8h_1ad0b0544b0708e6bed5b37adc34667b2a"/><section>
<title>fsm_enum_log_severity</title>
<indexterm><primary>fsm_enum_log_severity</primary><secondary>fsm.h</secondary></indexterm>
<indexterm><primary>fsm.h</primary><secondary>fsm_enum_log_severity</secondary></indexterm>
<para><computeroutput>enum <link linkend="_fsm_8h_1ad0b0544b0708e6bed5b37adc34667b2a">fsm_enum_log_severity</link></computeroutput></para><para>
<para>Conforms to canonical log levels: FATAL, ERROR, WARN, INFO, DEBUG, TRACE. </para>
</para>
<para><informaltable frame='bottom'><tgroup cols='1'><colspec align='center'/><tbody><row><entry align='center'>
</entry></row></tbody></tgroup></informaltable>
</para>
<section xml:id="_fsm_8h_1autotoc_md1">
<title>J O U R N A L - M E T A - R U L E S</title>
<para>ref: sudo cat /var/log/messages</para>
<para>log structure:<itemizedlist>
<listitem>
<para>date</para>
</listitem><listitem>
<para>rank</para>
</listitem><listitem>
<para>file</para>
</listitem><listitem>
<para>function</para>
</listitem><listitem>
<para>value, parameter, description, context,... (any value that can qualify the event and provides useful information when reading the log)</para>
</listitem></itemizedlist>
</para>
<para><informaltable frame='bottom'><tgroup cols='1'><colspec align='center'/><tbody><row><entry align='center'>
</entry></row></tbody></tgroup></informaltable>
</para>
<para>Un seul <link linkend="_fsm_8h_1a1c4245816950e71cae94f99b59c417a9">fsm_add_log()</link> par fonction ? sauf si cette fonction génère plusieurs autres fonctions d&apos;intérêt ?</para>
<para>S&apos;il y a deux <link linkend="_fsm_8h_1a1c4245816950e71cae94f99b59c417a9">fsm_add_log()</link> (begin / end) dans une fonction, ils doivent avoir la même étiquette (les mêmes valeurs) : SEVERITY &amp; SOURCE</para>
<para><link xlink:href="https://betterstack.com/community/guides/logging/logging-best-practices/">https://betterstack.com/community/guides/logging/logging-best-practices/</link> <link xlink:href="https://en.wikipedia.org/wiki/Syslog">https://en.wikipedia.org/wiki/Syslog</link></para>
<para><formalpara><title>See also</title>
<para><link linkend="_fsm_8h_1a1c4245816950e71cae94f99b59c417a9">fsm_add_log()</link>) </para>
</formalpara>
</para>
</section>
<informaltable frame="all">
<title>Enumerator</title>
<tgroup cols="2" align="left" colsep="1" rowsep="1">
<colspec colname='c1'/>
<colspec colname='c2'/>
<tbody>
<row><entry><indexterm><primary>FATAL</primary><secondary>fsm.h</secondary></indexterm>
<indexterm><primary>fsm.h</primary><secondary>FATAL</secondary></indexterm>
<anchor xml:id="_fsm_8h_1ad0b0544b0708e6bed5b37adc34667b2aa651d8a47a6976d6fe05c0e03fb4cd2d0"/>FATAL</entry><entry>
<para>(or CRITICAL) an unrecoverable failure that prevents the whole application from doing any further useful work </para>
</entry></row><row><entry><indexterm><primary>ERROR</primary><secondary>fsm.h</secondary></indexterm>
<indexterm><primary>fsm.h</primary><secondary>ERROR</secondary></indexterm>
<anchor xml:id="_fsm_8h_1ad0b0544b0708e6bed5b37adc34667b2aa2fd6f336d08340583bd620a7f5694c90"/>ERROR</entry><entry>
<para>a condition that hinders the execution of a specific operation within an application and is unrecoverable </para>
</entry></row><row><entry><indexterm><primary>WARN</primary><secondary>fsm.h</secondary></indexterm>
<indexterm><primary>fsm.h</primary><secondary>WARN</secondary></indexterm>
<anchor xml:id="_fsm_8h_1ad0b0544b0708e6bed5b37adc34667b2aa74dac7ac23d5b810db6d4067f14e8676"/>WARN</entry><entry>
<para>something unexpected has occurred, but the application can continue to function normally for the time being </para>
</entry></row><row><entry><indexterm><primary>INFO</primary><secondary>fsm.h</secondary></indexterm>
<indexterm><primary>fsm.h</primary><secondary>INFO</secondary></indexterm>
<anchor xml:id="_fsm_8h_1ad0b0544b0708e6bed5b37adc34667b2aa748005382152808a72b1a9177d9dc806"/>INFO</entry><entry>
<para>(or MESSAGE) a significant event occurs while the system is operating normally </para>
</entry></row><row><entry><indexterm><primary>DEBUG</primary><secondary>fsm.h</secondary></indexterm>
<indexterm><primary>fsm.h</primary><secondary>DEBUG</secondary></indexterm>
<anchor xml:id="_fsm_8h_1ad0b0544b0708e6bed5b37adc34667b2aa0593585da9181e972974c1274d8f2b4f"/>DEBUG</entry><entry>
<para>a description of system states in sufficient detail to give developers clues as to the cause of an error </para>
</entry></row><row><entry><indexterm><primary>TRACE</primary><secondary>fsm.h</secondary></indexterm>
<indexterm><primary>fsm.h</primary><secondary>TRACE</secondary></indexterm>
<anchor xml:id="_fsm_8h_1ad0b0544b0708e6bed5b37adc34667b2aa7fa27e82c6c4f69434225ed81e5d151e"/>TRACE</entry><entry>
<para>provides a systematic overview of code execution but comes at a cost in terms of performance </para>
</entry></row> </tbody>
</tgroup>
</informaltable>
</section>
<anchor xml:id="_fsm_8h_1aa39ee94b91ea55dff3a2b25eac9c16d6"/><section>
<title>fsm_enum_log_source</title>
<indexterm><primary>fsm_enum_log_source</primary><secondary>fsm.h</secondary></indexterm>
<indexterm><primary>fsm.h</primary><secondary>fsm_enum_log_source</secondary></indexterm>
<para><computeroutput>enum <link linkend="_fsm_8h_1aa39ee94b91ea55dff3a2b25eac9c16d6">fsm_enum_log_source</link></computeroutput></para><para>
<para>arbitrary values that can help the logging filter work more efficiently </para>
</para>
<para><formalpara><title>See also</title>
<para><link linkend="_fsm_8h_1a1c4245816950e71cae94f99b59c417a9">fsm_add_log()</link>) </para>
</formalpara>
</para>
<informaltable frame="all">
<title>Enumerator</title>
<tgroup cols="2" align="left" colsep="1" rowsep="1">
<colspec colname='c1'/>
<colspec colname='c2'/>
<tbody>
<row><entry><indexterm><primary>SOURCE</primary><secondary>fsm.h</secondary></indexterm>
<indexterm><primary>fsm.h</primary><secondary>SOURCE</secondary></indexterm>
<anchor xml:id="_fsm_8h_1aa39ee94b91ea55dff3a2b25eac9c16d6a0159491ea913604389155db907e0d1c0"/>SOURCE</entry><entry>
<para>must each element of this enumeration be commented (enhanced) ? </para>
</entry></row><row><entry><indexterm><primary>TARGET</primary><secondary>fsm.h</secondary></indexterm>
<indexterm><primary>fsm.h</primary><secondary>TARGET</secondary></indexterm>
<anchor xml:id="_fsm_8h_1aa39ee94b91ea55dff3a2b25eac9c16d6a09aa9e75617e9d8719738ca163c09137"/>TARGET</entry><entry>
<para>let&apos;s observe first how the enumeration structures and evolves on usage </para>
</entry></row><row><entry><indexterm><primary>WINDOW</primary><secondary>fsm.h</secondary></indexterm>
<indexterm><primary>fsm.h</primary><secondary>WINDOW</secondary></indexterm>
<anchor xml:id="_fsm_8h_1aa39ee94b91ea55dff3a2b25eac9c16d6a6e0f01f52fc70b478a06d943db6235cf"/>WINDOW</entry><entry>
<para>MAIN_WINDOW || DIALOG_WINDOW || MODAL_WINDOW || TEXT_WINDOW <?linebreak?> </para>
</entry></row><row><entry><indexterm><primary>TOPBAR</primary><secondary>fsm.h</secondary></indexterm>
<indexterm><primary>fsm.h</primary><secondary>TOPBAR</secondary></indexterm>
<anchor xml:id="_fsm_8h_1aa39ee94b91ea55dff3a2b25eac9c16d6a1733882035dc059d3893a09661b52eb9"/>TOPBAR</entry><entry>
<para>LEFT || CENTER || RIGHT. </para>
</entry></row><row><entry><indexterm><primary>PAGE</primary><secondary>fsm.h</secondary></indexterm>
<indexterm><primary>fsm.h</primary><secondary>PAGE</secondary></indexterm>
<anchor xml:id="_fsm_8h_1aa39ee94b91ea55dff3a2b25eac9c16d6ab788d9e2cde88d51a5cda409f75db490"/>PAGE</entry><entry>
<para>SYNTH_PAGE || STATE_PAGE || RULES_PAGE || MEASURES_PAGE || RESULTS_PAGE <?linebreak?> RULES_PAGE == USER TREE versus SELECTED (vertical separation) </para>
</entry></row> </tbody>
</tgroup>
</informaltable>
</section>
</section>
<section>
<title>Function Documentation</title>
<anchor xml:id="_fsm_8h_1aeb8e63af534703319fa3d909f166501c"/><section>
<title>fsm_add_data()</title>
<indexterm><primary>fsm_add_data</primary><secondary>fsm.h</secondary></indexterm>
<indexterm><primary>fsm.h</primary><secondary>fsm_add_data</secondary></indexterm>
<para><computeroutput>void fsm_add_data (<link linkend="_structfsm__struct__list__data">fsm_struct_list_data</link> d, int * p_data, int * p_target)</computeroutput></para><para>
<para>phantom documentation </para>
</para>
<para>
<formalpara>
<title>
Parameters</title>
<para>
<table frame="all">
<tgroup cols="2" align="left" colsep="1" rowsep="1">
<colspec colwidth="1*"/>
<colspec colwidth="4*"/>
<tbody>
<row>
<entry>d</entry><entry>
<para></para>
</entry>
</row>
<row>
<entry>*p_data</entry><entry>
<para></para>
</entry>
</row>
<row>
<entry>*p_target</entry><entry>
<para></para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</formalpara>
</para>
</section>
<anchor xml:id="_fsm_8h_1aa69a9ce07b26ad1863960c6f0d1303b5"/><section>
<title>fsm_add_displayable()</title>
<indexterm><primary>fsm_add_displayable</primary><secondary>fsm.h</secondary></indexterm>
<indexterm><primary>fsm.h</primary><secondary>fsm_add_displayable</secondary></indexterm>
<para><computeroutput>void fsm_add_displayable (char * displayable_name)</computeroutput></para>
<para><formalpara><title>Date</title>
<para></para>
</formalpara>
<formalpara><title>Author</title>
<para></para>
</formalpara>
<formalpara><title>See also</title>
<para></para>
<para></para>
</formalpara>
<formalpara>
<title>
Parameters</title>
<para>
<table frame="all">
<tgroup cols="2" align="left" colsep="1" rowsep="1">
<colspec colwidth="1*"/>
<colspec colwidth="4*"/>
<tbody>
<row>
<entry>displayable_name</entry><entry>
<para></para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</formalpara>
</para>
Here is the call graph for this function:<para>
<informalfigure>
<mediaobject>
<imageobject>
<imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="../../dd/d01/fsm_8h_aa69a9ce07b26ad1863960c6f0d1303b5_cgraph.svg"></imagedata>
</imageobject>
</mediaobject>
</informalfigure>
</para>
</section>
<anchor xml:id="_fsm_8h_1a1c4245816950e71cae94f99b59c417a9"/><section>
<title>fsm_add_log()</title>
<indexterm><primary>fsm_add_log</primary><secondary>fsm.h</secondary></indexterm>
<indexterm><primary>fsm.h</primary><secondary>fsm_add_log</secondary></indexterm>
<para><computeroutput>void fsm_add_log (int severity, int source, const char * file_source, const char * function_source, const char * string_value)</computeroutput></para><para>
<para>It is mandatory for any event to call this function to be published in the journal. </para>
</para>
<para>Before publication, a filter can be applied here (and only here) to select only some events of interest (during debugging, for example)</para>
<para>If there are too many events, a filter can be applied here to select a few interesting events for publication in the log.</para>
<para>This filter can operate on any the following five parameters: severity, source, *file_source, *function_source, *string_value. <formalpara><title>See also</title>
<para>below (params)</para>
</formalpara>
Simple filters (on a single parameter) can be combined using the logical operators &apos;and&apos; and &apos;or&apos; and parentheses.</para>
<para>Use: $ grep -r &quot;fsm_add_log&quot; to confirm the callergraph calls.</para>
<para><formalpara><title>Since</title>
<para>2024-08</para>
</formalpara>
<formalpara><title>See also</title>
<para>src/journal.c/fsm_journal_push_front()</para>
<para>src/main/main() </para>
<para>src/widget/topbar/modal.c </para>
<para>src/widget/topbar/right.c </para>
<para>src/widget/topbar/dialog.c </para>
<para>src/widget/topbar/left.c </para>
<para>src/widget/topbar/dispatch.c * 3 </para>
<para>src/widget/one_rule/dispatch.c </para>
<para>src/widget/one_rule/algebra/conditions.c * 2 </para>
<para>src/widget/measure/dispatch.c </para>
<para>src/widget/dispatch.c * 3 </para>
<para>src/widget/all_rules/dispatch.c </para>
<para><link linkend="_fsm_2preferences_2manager_8c">src/fsm/preferences/manager.c</link> * 8 </para>
<para><link linkend="_fsm_2measures_2manager_8c">src/fsm/measures/manager.c</link> * 2 </para>
<para><link linkend="_tools__list_8c">src/fsm/measures/tools_list.c</link> * 4 </para>
<para><link linkend="_fsm_2dispatch_8c">src/fsm/dispatch.c</link> * 10 </para>
<para><link linkend="_fsm_2results_2manager_8c">src/fsm/results/manager.c</link> </para>
<para><link linkend="_util_2tree_8c">src/util/tree.c</link> </para>
<para><link linkend="_signal_8c">src/signal.c</link> * 38</para>
</formalpara>
<formalpara>
<title>
Parameters</title>
<para>
<table frame="all">
<tgroup cols="2" align="left" colsep="1" rowsep="1">
<colspec colwidth="1*"/>
<colspec colwidth="4*"/>
<tbody>
<row>
<entry>severity</entry><entry>
<para>&lt;&gt; </para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</formalpara>
<formalpara><title>See also</title>
<para>enum fsm_enum_journal_severity in <link linkend="_fsm_8h">include/fsm.h</link> &apos;severity&apos; is a pre-defined value that must be associated to each event. It ranges from zero to six : CRITICAL <link linkend="_fsm_8h_1ad0b0544b0708e6bed5b37adc34667b2aa2fd6f336d08340583bd620a7f5694c90">ERROR</link> WARNING <link linkend="_fsm_8h_1ad0b0544b0708e6bed5b37adc34667b2aa748005382152808a72b1a9177d9dc806">INFO</link> <link linkend="_fsm_8h_1ad0b0544b0708e6bed5b37adc34667b2aa748005382152808a72b1a9177d9dc806">INFO</link> <link linkend="_fsm_8h_1ad0b0544b0708e6bed5b37adc34667b2aa0593585da9181e972974c1274d8f2b4f">DEBUG</link> <link linkend="_fsm_8h_1ad0b0544b0708e6bed5b37adc34667b2aa7fa27e82c6c4f69434225ed81e5d151e">TRACE</link> 0 1 2 3 4 5 6</para>
</formalpara>
<formalpara>
<title>
Parameters</title>
<para>
<table frame="all">
<tgroup cols="2" align="left" colsep="1" rowsep="1">
<colspec colwidth="1*"/>
<colspec colwidth="4*"/>
<tbody>
<row>
<entry>source</entry><entry>
<para>&lt;&gt; </para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</formalpara>
<formalpara><title>See also</title>
<para>enum fsm_enum_journal_source in <link linkend="_fsm_8h">include/fsm.h</link> &apos;source&apos; is a pre-defined value that can be associated to each event. It is not mandatory. It can be set to &apos;NULL&apos;.</para>
</formalpara>
<formalpara>
<title>
Parameters</title>
<para>
<table frame="all">
<tgroup cols="2" align="left" colsep="1" rowsep="1">
<colspec colwidth="1*"/>
<colspec colwidth="4*"/>
<tbody>
<row>
<entry>*file_source</entry><entry>
<para>&lt;&gt; the name of the file that emits the event. </para>
</entry>
</row>
<row>
<entry>*function_source</entry><entry>
<para>&lt;&gt; the function that emits the event. </para>
</entry>
</row>
<row>
<entry>*string_value</entry><entry>
<para>&lt;&gt; any value that can qualify the event and provides useful information when reading the log. </para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</formalpara>
</para>
Here is the call graph for this function:<para>
<informalfigure>
<mediaobject>
<imageobject>
<imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="../../dd/d01/fsm_8h_a1c4245816950e71cae94f99b59c417a9_cgraph.svg"></imagedata>
</imageobject>
</mediaobject>
</informalfigure>
</para>
Here is the caller graph for this function:<para>
<informalfigure>
<mediaobject>
<imageobject>
<imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="../../dd/d01/fsm_8h_a1c4245816950e71cae94f99b59c417a9_icgraph.svg"></imagedata>
</imageobject>
</mediaobject>
</informalfigure>
</para>
</section>
<anchor xml:id="_fsm_8h_1ac649e65c2bf355488f451154db5aca20"/><section>
<title>fsm_add_log_event()</title>
<indexterm><primary>fsm_add_log_event</primary><secondary>fsm.h</secondary></indexterm>
<indexterm><primary>fsm.h</primary><secondary>fsm_add_log_event</secondary></indexterm>
<para><computeroutput>void fsm_add_log_event (<link linkend="_structfsm__log__struct">fsm_log_struct</link> * jj, const char * file_source, const char * function_source, const char * string_value)</computeroutput></para><para>
<para>add an event </para>
</para>
<para><formalpara><title>Since</title>
<para>2024-09</para>
</formalpara>
<formalpara>
<title>
Parameters</title>
<para>
<table frame="all">
<tgroup cols="2" align="left" colsep="1" rowsep="1">
<colspec colwidth="1*"/>
<colspec colwidth="4*"/>
<tbody>
<row>
<entry>*jj</entry><entry>
<para></para>
</entry>
</row>
<row>
<entry>*file_source</entry><entry>
<para></para>
</entry>
</row>
<row>
<entry>*function_source</entry><entry>
<para></para>
</entry>
</row>
<row>
<entry>*string_value</entry><entry>
<para></para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</formalpara>
</para>
Here is the caller graph for this function:<para>
<informalfigure>
<mediaobject>
<imageobject>
<imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="../../dd/d01/fsm_8h_ac649e65c2bf355488f451154db5aca20_icgraph.svg"></imagedata>
</imageobject>
</mediaobject>
</informalfigure>
</para>
</section>
<anchor xml:id="_fsm_8h_1a6c711a88f128da33895ebd6cdf96ed66"/><section>
<title>fsm_add_measure()</title>
<indexterm><primary>fsm_add_measure</primary><secondary>fsm.h</secondary></indexterm>
<indexterm><primary>fsm.h</primary><secondary>fsm_add_measure</secondary></indexterm>
<para><computeroutput>void fsm_add_measure (char * measure_name)</computeroutput></para>
<para><formalpara><title>Since</title>
<para>2024-09</para>
</formalpara>
<formalpara><title>See also</title>
<para>src/widget/measure/dispatch/widget_measure_event_occurences_nb() </para>
<para>src/widget/measure/dispatch/widget_measure_event_occurences_dates() </para>
<para>src/widget/measure/dispatch/widget_measure_event_occurences_situations() </para>
<para>src/widget/measure/dispatch/widget_measure_time_elapsed_between_two_events() </para>
<para>src/widget/measure/dispatch/widget_measure_third_event_occurences_in_between()</para>
<para>src/fsm/dispatch/fsm_add_log() </para>
</formalpara>
<formalpara>
<title>
Parameters</title>
<para>
<table frame="all">
<tgroup cols="2" align="left" colsep="1" rowsep="1">
<colspec colwidth="1*"/>
<colspec colwidth="4*"/>
<tbody>
<row>
<entry>*measure_name</entry><entry>
<para></para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</formalpara>
</para>
Here is the call graph for this function:<para>
<informalfigure>
<mediaobject>
<imageobject>
<imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="../../dd/d01/fsm_8h_a6c711a88f128da33895ebd6cdf96ed66_cgraph.svg"></imagedata>
</imageobject>
</mediaobject>
</informalfigure>
</para>
Here is the caller graph for this function:<para>
<informalfigure>
<mediaobject>
<imageobject>
<imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="../../dd/d01/fsm_8h_a6c711a88f128da33895ebd6cdf96ed66_icgraph.svg"></imagedata>
</imageobject>
</mediaobject>
</informalfigure>
</para>
</section>
<anchor xml:id="_fsm_8h_1ac59294a7ff6934d0704c85aaf08dc268"/><section>
<title>fsm_add_result()</title>
<indexterm><primary>fsm_add_result</primary><secondary>fsm.h</secondary></indexterm>
<indexterm><primary>fsm.h</primary><secondary>fsm_add_result</secondary></indexterm>
<para><computeroutput>void fsm_add_result (char * result_name)</computeroutput></para>
<para><formalpara><title>See also</title>
<para><link linkend="_util_8h_1a7a9bfe2d249e5da19a1117c7d5636b8a">util_concat()</link></para>
<para><link linkend="_fsm_8h_1a9d131c81f05d5ee502b715db0e4e172a">fsm_init()</link> </para>
</formalpara>
</para>
Here is the call graph for this function:<para>
<informalfigure>
<mediaobject>
<imageobject>
<imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="../../dd/d01/fsm_8h_ac59294a7ff6934d0704c85aaf08dc268_cgraph.svg"></imagedata>
</imageobject>
</mediaobject>
</informalfigure>
</para>
Here is the caller graph for this function:<para>
<informalfigure>
<mediaobject>
<imageobject>
<imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="../../dd/d01/fsm_8h_ac59294a7ff6934d0704c85aaf08dc268_icgraph.svg"></imagedata>
</imageobject>
</mediaobject>
</informalfigure>
</para>
</section>
<anchor xml:id="_fsm_8h_1a84756e3910c9f8b9b53834a74c67406e"/><section>
<title>fsm_clear_log()</title>
<indexterm><primary>fsm_clear_log</primary><secondary>fsm.h</secondary></indexterm>
<indexterm><primary>fsm.h</primary><secondary>fsm_clear_log</secondary></indexterm>
<para><computeroutput>void fsm_clear_log (<link linkend="_structfsm__log__struct">fsm_log_struct</link> * jj, const char * file_source, const char * function_source, const char * string_value)</computeroutput></para><para>
<para>usefulness ? (systematic ^c) </para>
</para>
<para><formalpara><title>Since</title>
<para>2024-09</para>
</formalpara>
<formalpara>
<title>
Parameters</title>
<para>
<table frame="all">
<tgroup cols="2" align="left" colsep="1" rowsep="1">
<colspec colwidth="1*"/>
<colspec colwidth="4*"/>
<tbody>
<row>
<entry>*jj</entry><entry>
<para></para>
</entry>
</row>
<row>
<entry>*file_source</entry><entry>
<para></para>
</entry>
</row>
<row>
<entry>*function_source</entry><entry>
<para></para>
</entry>
</row>
<row>
<entry>*string_value</entry><entry>
<para></para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</formalpara>
</para>
</section>
<anchor xml:id="_fsm_8h_1a51424f38912d7ac0f5df50d6f073bfff"/><section>
<title>fsm_get_data()</title>
<indexterm><primary>fsm_get_data</primary><secondary>fsm.h</secondary></indexterm>
<indexterm><primary>fsm.h</primary><secondary>fsm_get_data</secondary></indexterm>
<para><computeroutput>int fsm_get_data (<link linkend="_structfsm__struct__list__data">fsm_struct_list_data</link> d, int from, int to)</computeroutput></para><para>
<para>phantom documentation </para>
</para>
<para>
<formalpara>
<title>
Parameters</title>
<para>
<table frame="all">
<tgroup cols="2" align="left" colsep="1" rowsep="1">
<colspec colwidth="1*"/>
<colspec colwidth="4*"/>
<tbody>
<row>
<entry>d</entry><entry>
<para></para>
</entry>
</row>
<row>
<entry>from</entry><entry>
<para></para>
</entry>
</row>
<row>
<entry>to</entry><entry>
<para></para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</formalpara>
</para>
</section>
<anchor xml:id="_fsm_8h_1a9123915ffd10fe1ae18254898b1c0ebf"/><section>
<title>fsm_get_exec_edit()</title>
<indexterm><primary>fsm_get_exec_edit</primary><secondary>fsm.h</secondary></indexterm>
<indexterm><primary>fsm.h</primary><secondary>fsm_get_exec_edit</secondary></indexterm>
<para><computeroutput>int fsm_get_exec_edit ( )</computeroutput></para><para>
<para>some client pages (in particular &quot;state&quot; and &quot;rules&quot;) will be displayed and behave differently depending on whether the fsm is in edit or run state. </para>
</para>
<para>Any function which modifies the appearance or behavior of these pages must use this getter to access the choice_EXEC_EDIT value.</para>
<para>see include/fsm enum fsm_enum_exec_edit { EXEC, EDIT } The current int may be replaced by a boolean . TODO</para>
<para><formalpara><title>Since</title>
<para>2024-06</para>
</formalpara>
<formalpara><title>See also</title>
<para>src/widget/one_rule/dispatch </para>
<para>src/widget/state/dispatch * 2 </para>
<para>src/signal</para>
<para>choice_EXEC_EDIT and </para>
<para>include/fsm/enum <link linkend="_fsm_8h_1a7804536bf1011457f3d850e350772dca">fsm_enum_exec_edit</link> {}</para>
</formalpara>
<formalpara><title>Returns</title>
<para>choice_EXEC_EDIT </para>
</formalpara>
</para>
Here is the caller graph for this function:<para>
<informalfigure>
<mediaobject>
<imageobject>
<imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="../../dd/d01/fsm_8h_a9123915ffd10fe1ae18254898b1c0ebf_icgraph.svg"></imagedata>
</imageobject>
</mediaobject>
</informalfigure>
</para>
</section>
<anchor xml:id="_fsm_8h_1a0d06efb349076f5520325c8fc65fba35"/><section>
<title>fsm_get_log_length()</title>
<indexterm><primary>fsm_get_log_length</primary><secondary>fsm.h</secondary></indexterm>
<indexterm><primary>fsm.h</primary><secondary>fsm_get_log_length</secondary></indexterm>
<para><computeroutput>int fsm_get_log_length (<link linkend="_structfsm__log__struct">fsm_log_struct</link> jj)</computeroutput></para><para>
<para>get journal_length </para>
</para>
<para><formalpara><title>Since</title>
<para>2024-09</para>
</formalpara>
<formalpara>
<title>
Parameters</title>
<para>
<table frame="all">
<tgroup cols="2" align="left" colsep="1" rowsep="1">
<colspec colwidth="1*"/>
<colspec colwidth="4*"/>
<tbody>
<row>
<entry>*jj</entry><entry>
<para></para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</formalpara>
<formalpara><title>Returns</title>
<para>journal length </para>
</formalpara>
</para>
</section>
<anchor xml:id="_fsm_8h_1a0b0231a311d0e85723ef9fcf38be88e3"/><section>
<title>fsm_get_preferences_state()</title>
<indexterm><primary>fsm_get_preferences_state</primary><secondary>fsm.h</secondary></indexterm>
<indexterm><primary>fsm.h</primary><secondary>fsm_get_preferences_state</secondary></indexterm>
<para><computeroutput>bool fsm_get_preferences_state ( )</computeroutput></para><para>
<para>getter for the static boolean: &apos;preferences_have_been_modified&apos; </para>
</para>
<para><formalpara><title>Since</title>
<para>2024-08</para>
</formalpara>
<formalpara><title>See also</title>
<para>TODO A function must obtain this boolean when it stores the current state of the fsm (including <link linkend="_structpreferences">preferences</link>) before closing the current session.</para>
</formalpara>
<formalpara><title>Returns</title>
<para>preferences_have_been_modified </para>
</formalpara>
</para>
</section>
<anchor xml:id="_fsm_8h_1a90ab14081a88752d3721947a4922ee25"/><section>
<title>fsm_get_state_rules_data()</title>
<indexterm><primary>fsm_get_state_rules_data</primary><secondary>fsm.h</secondary></indexterm>
<indexterm><primary>fsm.h</primary><secondary>fsm_get_state_rules_data</secondary></indexterm>
<para><computeroutput>int fsm_get_state_rules_data ( )</computeroutput></para><para>
<para>The value of the static int choice_STATE_RULES_DATA can be one of the enum include/fsm enum fsm_enum_state_rules_data. </para>
</para>
<para>To each value is associated a different page and different possible behaviors. Any function that modifies the client window must get this value.</para>
<para>see include/fsm enum fsm_enum_state_rules_data { SYNTH, STATE, RULES, DATA }</para>
<para><formalpara><title>Since</title>
<para>2024-06</para>
</formalpara>
<formalpara><title>See also</title>
<para>src/widget/topbar/left </para>
<para>src/signal</para>
</formalpara>
<formalpara><title>Returns</title>
<para>choice_STATE_RULES_DATA </para>
</formalpara>
</para>
Here is the caller graph for this function:<para>
<informalfigure>
<mediaobject>
<imageobject>
<imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="../../dd/d01/fsm_8h_a90ab14081a88752d3721947a4922ee25_icgraph.svg"></imagedata>
</imageobject>
</mediaobject>
</informalfigure>
</para>
</section>
<anchor xml:id="_fsm_8h_1a9d131c81f05d5ee502b715db0e4e172a"/><section>
<title>fsm_init()</title>
<indexterm><primary>fsm_init</primary><secondary>fsm.h</secondary></indexterm>
<indexterm><primary>fsm.h</primary><secondary>fsm_init</secondary></indexterm>
<para><computeroutput>void fsm_init (char * initial_INFO_from_main)</computeroutput></para><para>
<para>fsm init is the first function called by <link linkend="_main_8c">main.c</link> It initiates the journal and the four lists: &apos;measures&apos;, &apos;results&apos;, &apos;displayables results&apos; and &apos;preferences&apos;. </para>
</para>
<para>The items selected in these lists define the current state of the fsm.</para>
<para><formalpara><title>Since</title>
<para>2024-08</para>
</formalpara>
<formalpara><title>See also</title>
<para>src/main/main()</para>
<para>src/journal/fsm_init_log() </para>
<para>src/fsm/dispatch/fsm_add_log() </para>
<para>src/fsm/measures/manager/fsm_list_init_measures() </para>
<para>src/fsm/results/manager/fsm_list_init_results() </para>
<para>src/fsm/preferences/manager/fsm_list_init_displayables() </para>
<para>src/fsm/preferences/manager/fsm_list_init_preferences()</para>
</formalpara>
<formalpara>
<title>
Parameters</title>
<para>
<table frame="all">
<tgroup cols="2" align="left" colsep="1" rowsep="1">
<colspec colwidth="1*"/>
<colspec colwidth="4*"/>
<tbody>
<row>
<entry>*initial_INFO_from_main</entry><entry>
<para></para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</formalpara>
</para>
Here is the call graph for this function:<para>
<informalfigure>
<mediaobject>
<imageobject>
<imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="../../dd/d01/fsm_8h_a9d131c81f05d5ee502b715db0e4e172a_cgraph.svg"></imagedata>
</imageobject>
</mediaobject>
</informalfigure>
</para>
Here is the caller graph for this function:<para>
<informalfigure>
<mediaobject>
<imageobject>
<imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="../../dd/d01/fsm_8h_a9d131c81f05d5ee502b715db0e4e172a_icgraph.svg"></imagedata>
</imageobject>
</mediaobject>
</informalfigure>
</para>
</section>
<anchor xml:id="_fsm_8h_1ae0dbc2611e12fd1f4da5835687dcbbb2"/><section>
<title>fsm_init_log()</title>
<indexterm><primary>fsm_init_log</primary><secondary>fsm.h</secondary></indexterm>
<indexterm><primary>fsm.h</primary><secondary>fsm_init_log</secondary></indexterm>
<para><computeroutput>void fsm_init_log (<link linkend="_structfsm__log__struct">fsm_log_struct</link> * jj)</computeroutput></para><para>
<para>init the journal </para>
</para>
<para><formalpara><title>Since</title>
<para>2024-09</para>
</formalpara>
<formalpara>
<title>
Parameters</title>
<para>
<table frame="all">
<tgroup cols="2" align="left" colsep="1" rowsep="1">
<colspec colwidth="1*"/>
<colspec colwidth="4*"/>
<tbody>
<row>
<entry>*jj</entry><entry>
<para></para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</formalpara>
</para>
Here is the caller graph for this function:<para>
<informalfigure>
<mediaobject>
<imageobject>
<imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="../../dd/d01/fsm_8h_ae0dbc2611e12fd1f4da5835687dcbbb2_icgraph.svg"></imagedata>
</imageobject>
</mediaobject>
</informalfigure>
</para>
</section>
<anchor xml:id="_fsm_8h_1a8eaa768708ebc21d710a8cc6144af1d3"/><section>
<title>fsm_list_init_displayables()</title>
<indexterm><primary>fsm_list_init_displayables</primary><secondary>fsm.h</secondary></indexterm>
<indexterm><primary>fsm.h</primary><secondary>fsm_list_init_displayables</secondary></indexterm>
<para><computeroutput>void fsm_list_init_displayables ( )</computeroutput></para>
<para><formalpara><title>Date</title>
<para></para>
</formalpara>
<formalpara><title>Author</title>
<para></para>
</formalpara>
<formalpara><title>See also</title>
<para></para>
</formalpara>
</para>
Here is the call graph for this function:<para>
<informalfigure>
<mediaobject>
<imageobject>
<imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="../../dd/d01/fsm_8h_a8eaa768708ebc21d710a8cc6144af1d3_cgraph.svg"></imagedata>
</imageobject>
</mediaobject>
</informalfigure>
</para>
Here is the caller graph for this function:<para>
<informalfigure>
<mediaobject>
<imageobject>
<imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="../../dd/d01/fsm_8h_a8eaa768708ebc21d710a8cc6144af1d3_icgraph.svg"></imagedata>
</imageobject>
</mediaobject>
</informalfigure>
</para>
</section>
<anchor xml:id="_fsm_8h_1a5da29952715596bf17643f907bd64daf"/><section>
<title>fsm_list_init_measures()</title>
<indexterm><primary>fsm_list_init_measures</primary><secondary>fsm.h</secondary></indexterm>
<indexterm><primary>fsm.h</primary><secondary>fsm_list_init_measures</secondary></indexterm>
<para><computeroutput>void fsm_list_init_measures ( )</computeroutput></para>
<para><formalpara><title>Since</title>
<para>2024-09</para>
</formalpara>
<formalpara><title>See also</title>
<para>src/fsm/dispatch/fsm_init() </para>
</formalpara>
</para>
Here is the call graph for this function:<para>
<informalfigure>
<mediaobject>
<imageobject>
<imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="../../dd/d01/fsm_8h_a5da29952715596bf17643f907bd64daf_cgraph.svg"></imagedata>
</imageobject>
</mediaobject>
</informalfigure>
</para>
Here is the caller graph for this function:<para>
<informalfigure>
<mediaobject>
<imageobject>
<imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="../../dd/d01/fsm_8h_a5da29952715596bf17643f907bd64daf_icgraph.svg"></imagedata>
</imageobject>
</mediaobject>
</informalfigure>
</para>
</section>
<anchor xml:id="_fsm_8h_1aa02db2c62f7507eabfcc9a41f0e660b6"/><section>
<title>fsm_list_init_preferences()</title>
<indexterm><primary>fsm_list_init_preferences</primary><secondary>fsm.h</secondary></indexterm>
<indexterm><primary>fsm.h</primary><secondary>fsm_list_init_preferences</secondary></indexterm>
<para><computeroutput>void fsm_list_init_preferences ( )</computeroutput></para>
<para><formalpara><title>Date</title>
<para></para>
</formalpara>
<formalpara><title>Author</title>
<para></para>
</formalpara>
<formalpara><title>See also</title>
<para></para>
<para></para>
</formalpara>
</para>
Here is the call graph for this function:<para>
<informalfigure>
<mediaobject>
<imageobject>
<imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="../../dd/d01/fsm_8h_aa02db2c62f7507eabfcc9a41f0e660b6_cgraph.svg"></imagedata>
</imageobject>
</mediaobject>
</informalfigure>
</para>
Here is the caller graph for this function:<para>
<informalfigure>
<mediaobject>
<imageobject>
<imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="../../dd/d01/fsm_8h_aa02db2c62f7507eabfcc9a41f0e660b6_icgraph.svg"></imagedata>
</imageobject>
</mediaobject>
</informalfigure>
</para>
</section>
<anchor xml:id="_fsm_8h_1ae228c78b1697ffd299d415ce2bdce515"/><section>
<title>fsm_list_init_results()</title>
<indexterm><primary>fsm_list_init_results</primary><secondary>fsm.h</secondary></indexterm>
<indexterm><primary>fsm.h</primary><secondary>fsm_list_init_results</secondary></indexterm>
<para><computeroutput>void fsm_list_init_results ( )</computeroutput></para>
<para><formalpara><title>See also</title>
<para><link linkend="_fsm_8h_1a9d131c81f05d5ee502b715db0e4e172a">fsm_init()</link></para>
<para><link linkend="_fsm_2results_2manager_8c_1ac59294a7ff6934d0704c85aaf08dc268">fsm_add_result()</link> </para>
<para><link linkend="_fsm_8h_1a1c4245816950e71cae94f99b59c417a9">fsm_add_log()</link> </para>
</formalpara>
</para>
Here is the call graph for this function:<para>
<informalfigure>
<mediaobject>
<imageobject>
<imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="../../dd/d01/fsm_8h_ae228c78b1697ffd299d415ce2bdce515_cgraph.svg"></imagedata>
</imageobject>
</mediaobject>
</informalfigure>
</para>
Here is the caller graph for this function:<para>
<informalfigure>
<mediaobject>
<imageobject>
<imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="../../dd/d01/fsm_8h_ae228c78b1697ffd299d415ce2bdce515_icgraph.svg"></imagedata>
</imageobject>
</mediaobject>
</informalfigure>
</para>
</section>
<anchor xml:id="_fsm_8h_1ab34d58241602f3a181ce2280516a3fb1"/><section>
<title>fsm_log_publication_request()</title>
<indexterm><primary>fsm_log_publication_request</primary><secondary>fsm.h</secondary></indexterm>
<indexterm><primary>fsm.h</primary><secondary>fsm_log_publication_request</secondary></indexterm>
<para><computeroutput>void fsm_log_publication_request ( )</computeroutput></para><para>
<para>This request is called only once, by <link linkend="_main_8c_1a3c04138a5bfe5d72780bb7e82a18e627">main()</link>, just after closing the app and before ending the program. </para>
</para>
<para>This is to guarantee the chronological order of the events.</para>
<para>The log is modified for each event but events can be send asynchronously. This is why the journal is only published once, before the end of &quot;main()&quot;, Its chronological order is therefore guaranteed.</para>
<para>src/journal.c/fsm_publish_log() (called here) is the last function of the program to be executed.</para>
<para>The fsm_struct_journal (gg_logs) is a static instance in this file. Therefore, all the functions that read or write it are in this file. This is to avoid uncontrolled operations on it.</para>
<para><formalpara><title>Since</title>
<para>2024-08</para>
</formalpara>
<formalpara><title>See also</title>
<para><link linkend="_main_8c_1a3c04138a5bfe5d72780bb7e82a18e627">main()</link></para>
<para><link linkend="_fsm_8h_1a50ccfd1b874b1f23e1ea38c346dc880c">fsm_publish_log()</link> </para>
</formalpara>
</para>
Here is the call graph for this function:<para>
<informalfigure>
<mediaobject>
<imageobject>
<imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="../../dd/d01/fsm_8h_ab34d58241602f3a181ce2280516a3fb1_cgraph.svg"></imagedata>
</imageobject>
</mediaobject>
</informalfigure>
</para>
Here is the caller graph for this function:<para>
<informalfigure>
<mediaobject>
<imageobject>
<imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="../../dd/d01/fsm_8h_ab34d58241602f3a181ce2280516a3fb1_icgraph.svg"></imagedata>
</imageobject>
</mediaobject>
</informalfigure>
</para>
</section>
<anchor xml:id="_fsm_8h_1a4404da8b9abd927d360136e9b7094cca"/><section>
<title>fsm_pop_back_log()</title>
<indexterm><primary>fsm_pop_back_log</primary><secondary>fsm.h</secondary></indexterm>
<indexterm><primary>fsm.h</primary><secondary>fsm_pop_back_log</secondary></indexterm>
<para><computeroutput>long fsm_pop_back_log (<link linkend="_structfsm__log__struct">fsm_log_struct</link> * jj, const char * file_source, const char * function_source, const char * string_value)</computeroutput></para><para>
<para>remove an event </para>
</para>
<para><formalpara><title>Since</title>
<para>2024-09</para>
</formalpara>
<formalpara>
<title>
Parameters</title>
<para>
<table frame="all">
<tgroup cols="2" align="left" colsep="1" rowsep="1">
<colspec colwidth="1*"/>
<colspec colwidth="4*"/>
<tbody>
<row>
<entry>*jj</entry><entry>
<para></para>
</entry>
</row>
<row>
<entry>*file_source</entry><entry>
<para></para>
</entry>
</row>
<row>
<entry>*function_source</entry><entry>
<para></para>
</entry>
</row>
<row>
<entry>*string_value</entry><entry>
<para></para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</formalpara>
</para>
</section>
<anchor xml:id="_fsm_8h_1a50ccfd1b874b1f23e1ea38c346dc880c"/><section>
<title>fsm_publish_log()</title>
<indexterm><primary>fsm_publish_log</primary><secondary>fsm.h</secondary></indexterm>
<indexterm><primary>fsm.h</primary><secondary>fsm_publish_log</secondary></indexterm>
<para><computeroutput>void fsm_publish_log (<link linkend="_structfsm__log__struct">fsm_log_struct</link> jj)</computeroutput></para><para>
<para>publish all the logs today just print in the console TODO &gt; in a file </para>
</para>
<para><formalpara><title>Since</title>
<para>2024-09</para>
</formalpara>
<formalpara>
<title>
Parameters</title>
<para>
<table frame="all">
<tgroup cols="2" align="left" colsep="1" rowsep="1">
<colspec colwidth="1*"/>
<colspec colwidth="4*"/>
<tbody>
<row>
<entry>*jj</entry><entry>
<para></para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</formalpara>
</para>
Here is the caller graph for this function:<para>
<informalfigure>
<mediaobject>
<imageobject>
<imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="../../dd/d01/fsm_8h_a50ccfd1b874b1f23e1ea38c346dc880c_icgraph.svg"></imagedata>
</imageobject>
</mediaobject>
</informalfigure>
</para>
</section>
<anchor xml:id="_fsm_8h_1a9682b83c800a1d48695a58744997d4d8"/><section>
<title>fsm_remove_data()</title>
<indexterm><primary>fsm_remove_data</primary><secondary>fsm.h</secondary></indexterm>
<indexterm><primary>fsm.h</primary><secondary>fsm_remove_data</secondary></indexterm>
<para><computeroutput>void fsm_remove_data (<link linkend="_structfsm__struct__list__data">fsm_struct_list_data</link> d, int * p_data)</computeroutput></para><para>
<para>phantom documentation </para>
</para>
<para>
<formalpara>
<title>
Parameters</title>
<para>
<table frame="all">
<tgroup cols="2" align="left" colsep="1" rowsep="1">
<colspec colwidth="1*"/>
<colspec colwidth="4*"/>
<tbody>
<row>
<entry>d</entry><entry>
<para></para>
</entry>
</row>
<row>
<entry>*p_data</entry><entry>
<para></para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</formalpara>
</para>
</section>
<anchor xml:id="_fsm_8h_1abb1b857c9ec1ab39d6cb7cdf683a08d1"/><section>
<title>fsm_reset_all_situations_values()</title>
<indexterm><primary>fsm_reset_all_situations_values</primary><secondary>fsm.h</secondary></indexterm>
<indexterm><primary>fsm.h</primary><secondary>fsm_reset_all_situations_values</secondary></indexterm>
<para><computeroutput>void fsm_reset_all_situations_values (int value)</computeroutput></para>
<para><formalpara><title>Date</title>
<para></para>
</formalpara>
<formalpara><title>Author</title>
<para></para>
</formalpara>
<formalpara><title>See also</title>
<para></para>
<para></para>
</formalpara>
<formalpara>
<title>
Parameters</title>
<para>
<table frame="all">
<tgroup cols="2" align="left" colsep="1" rowsep="1">
<colspec colwidth="1*"/>
<colspec colwidth="4*"/>
<tbody>
<row>
<entry>value</entry><entry>
<para></para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</formalpara>
</para>
Here is the call graph for this function:<para>
<informalfigure>
<mediaobject>
<imageobject>
<imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="../../dd/d01/fsm_8h_abb1b857c9ec1ab39d6cb7cdf683a08d1_cgraph.svg"></imagedata>
</imageobject>
</mediaobject>
</informalfigure>
</para>
Here is the caller graph for this function:<para>
<informalfigure>
<mediaobject>
<imageobject>
<imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="../../dd/d01/fsm_8h_abb1b857c9ec1ab39d6cb7cdf683a08d1_icgraph.svg"></imagedata>
</imageobject>
</mediaobject>
</informalfigure>
</para>
</section>
<anchor xml:id="_fsm_8h_1ae81ba1733710f5b2db1a5b253d7adaf7"/><section>
<title>fsm_rule_trig_measure()</title>
<indexterm><primary>fsm_rule_trig_measure</primary><secondary>fsm.h</secondary></indexterm>
<indexterm><primary>fsm.h</primary><secondary>fsm_rule_trig_measure</secondary></indexterm>
<para><computeroutput>void fsm_rule_trig_measure (int rule_id, int object_id, int measure_id)</computeroutput></para>
<para><formalpara><title>Since</title>
<para>2024-09 </para>
</formalpara>
<formalpara>
<title>
Parameters</title>
<para>
<table frame="all">
<tgroup cols="2" align="left" colsep="1" rowsep="1">
<colspec colwidth="1*"/>
<colspec colwidth="4*"/>
<tbody>
<row>
<entry>rule_id</entry><entry>
<para></para>
</entry>
</row>
<row>
<entry>object_id</entry><entry>
<para></para>
</entry>
</row>
<row>
<entry>measure_id</entry><entry>
<para></para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</formalpara>
</para>
</section>
<anchor xml:id="_fsm_8h_1af744a631174ddce0fe824ea375c57197"/><section>
<title>fsm_seek_log()</title>
<indexterm><primary>fsm_seek_log</primary><secondary>fsm.h</secondary></indexterm>
<indexterm><primary>fsm.h</primary><secondary>fsm_seek_log</secondary></indexterm>
<para><computeroutput>void fsm_seek_log (<link linkend="_structfsm__log__struct">fsm_log_struct</link> jj, long usec, const char * file_source, const char * function_source, const char * string_value)</computeroutput></para><para>
<para>seek for an event </para>
</para>
<para><formalpara><title>Since</title>
<para>2024-09</para>
</formalpara>
<formalpara>
<title>
Parameters</title>
<para>
<table frame="all">
<tgroup cols="2" align="left" colsep="1" rowsep="1">
<colspec colwidth="1*"/>
<colspec colwidth="4*"/>
<tbody>
<row>
<entry>*jj</entry><entry>
<para></para>
</entry>
</row>
<row>
<entry>usec</entry><entry>
<para></para>
</entry>
</row>
<row>
<entry>*file_source</entry><entry>
<para></para>
</entry>
</row>
<row>
<entry>*function_source</entry><entry>
<para></para>
</entry>
</row>
<row>
<entry>*string_value</entry><entry>
<para></para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</formalpara>
</para>
</section>
<anchor xml:id="_fsm_8h_1a1f8ada2e7bb701277fc6c5a378b93c88"/><section>
<title>fsm_set_exec_edit()</title>
<indexterm><primary>fsm_set_exec_edit</primary><secondary>fsm.h</secondary></indexterm>
<indexterm><primary>fsm.h</primary><secondary>fsm_set_exec_edit</secondary></indexterm>
<para><computeroutput>void fsm_set_exec_edit (int choice)</computeroutput></para><para>
<para>setter for the static value: &apos;choice_STATE_RULES_DATA&apos; (in this file) </para>
</para>
<para>see include/fsm enum fsm_enum_exec_edit { EXEC, EDIT }</para>
<para><formalpara><title>Since</title>
<para>2024-08</para>
</formalpara>
<formalpara><title>See also</title>
<para>src/signal * 2</para>
</formalpara>
<formalpara>
<title>
Parameters</title>
<para>
<table frame="all">
<tgroup cols="2" align="left" colsep="1" rowsep="1">
<colspec colwidth="1*"/>
<colspec colwidth="4*"/>
<tbody>
<row>
<entry>choice</entry><entry>
<para>&lt; a boolean value which can be &quot;EXEC&quot; or &quot;EDIT&quot; </para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</formalpara>
</para>
Here is the call graph for this function:<para>
<informalfigure>
<mediaobject>
<imageobject>
<imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="../../dd/d01/fsm_8h_a1f8ada2e7bb701277fc6c5a378b93c88_cgraph.svg"></imagedata>
</imageobject>
</mediaobject>
</informalfigure>
</para>
Here is the caller graph for this function:<para>
<informalfigure>
<mediaobject>
<imageobject>
<imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="../../dd/d01/fsm_8h_a1f8ada2e7bb701277fc6c5a378b93c88_icgraph.svg"></imagedata>
</imageobject>
</mediaobject>
</informalfigure>
</para>
</section>
<anchor xml:id="_fsm_8h_1a770bcaeb0bd6f81cddcc3cd506468fff"/><section>
<title>fsm_set_preferences_modified()</title>
<indexterm><primary>fsm_set_preferences_modified</primary><secondary>fsm.h</secondary></indexterm>
<indexterm><primary>fsm.h</primary><secondary>fsm_set_preferences_modified</secondary></indexterm>
<para><computeroutput>void fsm_set_preferences_modified (bool value)</computeroutput></para><para>
<para>setter for the static boolean: &apos;preferences_have_been_modified&apos; </para>
</para>
<para><formalpara><title>Since</title>
<para>2024-08</para>
</formalpara>
<formalpara><title>See also</title>
<para>TODO To be used by any function that modifies the current user <link linkend="_structpreferences">preferences</link></para>
<para><link linkend="_fsm_2dispatch_8c_1a1c4245816950e71cae94f99b59c417a9">fsm_add_log()</link></para>
</formalpara>
<formalpara>
<title>
Parameters</title>
<para>
<table frame="all">
<tgroup cols="2" align="left" colsep="1" rowsep="1">
<colspec colwidth="1*"/>
<colspec colwidth="4*"/>
<tbody>
<row>
<entry>value</entry><entry>
<para>= TRUE if preferences_have_been_modified. </para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</formalpara>
</para>
Here is the call graph for this function:<para>
<informalfigure>
<mediaobject>
<imageobject>
<imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="../../dd/d01/fsm_8h_a770bcaeb0bd6f81cddcc3cd506468fff_cgraph.svg"></imagedata>
</imageobject>
</mediaobject>
</informalfigure>
</para>
Here is the caller graph for this function:<para>
<informalfigure>
<mediaobject>
<imageobject>
<imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="../../dd/d01/fsm_8h_a770bcaeb0bd6f81cddcc3cd506468fff_icgraph.svg"></imagedata>
</imageobject>
</mediaobject>
</informalfigure>
</para>
</section>
<anchor xml:id="_fsm_8h_1a1cd2f8cf1891095e1496c76b17aed7f2"/><section>
<title>fsm_set_state_rules_data()</title>
<indexterm><primary>fsm_set_state_rules_data</primary><secondary>fsm.h</secondary></indexterm>
<indexterm><primary>fsm.h</primary><secondary>fsm_set_state_rules_data</secondary></indexterm>
<para><computeroutput>void fsm_set_state_rules_data (int choice)</computeroutput></para><para>
<para>setter for the static value: &apos;choice_STATE_RULES_DATA&apos; (in this file) </para>
</para>
<para>see include/fsm enum fsm_enum_state_rules_data { SYNTH, STATE, RULES, DATA } Today (2024-10) the initial page is set to &apos;SYNTH&apos;. <formalpara><title>See also</title>
<para>line 292 choice_STATE_RULES_DATA = SYNTH; NB This choice can be temporarily modified for debugging purpose: </para>
<para>end of the function: <link linkend="_fsm_2dispatch_8c">fsm/dispatch.c</link> <link linkend="_widget_8h_1ad59febcb3e05fa3b7d1066630a50d3b6">window_design_topbar_left()</link></para>
</formalpara>
<formalpara><title>Since</title>
<para>2024-08</para>
</formalpara>
<formalpara><title>See also</title>
<para>src/signal * 4</para>
</formalpara>
<formalpara>
<title>
Parameters</title>
<para>
<table frame="all">
<tgroup cols="2" align="left" colsep="1" rowsep="1">
<colspec colwidth="1*"/>
<colspec colwidth="4*"/>
<tbody>
<row>
<entry>choice</entry><entry>
<para></para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</formalpara>
</para>
Here is the call graph for this function:<para>
<informalfigure>
<mediaobject>
<imageobject>
<imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="../../dd/d01/fsm_8h_a1cd2f8cf1891095e1496c76b17aed7f2_cgraph.svg"></imagedata>
</imageobject>
</mediaobject>
</informalfigure>
</para>
Here is the caller graph for this function:<para>
<informalfigure>
<mediaobject>
<imageobject>
<imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="../../dd/d01/fsm_8h_a1cd2f8cf1891095e1496c76b17aed7f2_icgraph.svg"></imagedata>
</imageobject>
</mediaobject>
</informalfigure>
</para>
</section>
<anchor xml:id="_fsm_8h_1a42a491a3a432cf572b3c2ed84a00d927"/><section>
<title>fsm_set_store_restore_reset()</title>
<indexterm><primary>fsm_set_store_restore_reset</primary><secondary>fsm.h</secondary></indexterm>
<indexterm><primary>fsm.h</primary><secondary>fsm_set_store_restore_reset</secondary></indexterm>
<para><computeroutput>void fsm_set_store_restore_reset (int choice, int value)</computeroutput></para>
<para><formalpara><title>Date</title>
<para></para>
</formalpara>
<formalpara><title>Author</title>
<para></para>
</formalpara>
<formalpara><title>See also</title>
<para></para>
<para></para>
</formalpara>
<formalpara>
<title>
Parameters</title>
<para>
<table frame="all">
<tgroup cols="2" align="left" colsep="1" rowsep="1">
<colspec colwidth="1*"/>
<colspec colwidth="4*"/>
<tbody>
<row>
<entry>choice</entry><entry>
<para></para>
</entry>
</row>
<row>
<entry>value</entry><entry>
<para></para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</formalpara>
</para>
Here is the call graph for this function:<para>
<informalfigure>
<mediaobject>
<imageobject>
<imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="../../dd/d01/fsm_8h_a42a491a3a432cf572b3c2ed84a00d927_cgraph.svg"></imagedata>
</imageobject>
</mediaobject>
</informalfigure>
</para>
Here is the caller graph for this function:<para>
<informalfigure>
<mediaobject>
<imageobject>
<imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="../../dd/d01/fsm_8h_a42a491a3a432cf572b3c2ed84a00d927_icgraph.svg"></imagedata>
</imageobject>
</mediaobject>
</informalfigure>
</para>
</section>
<anchor xml:id="_fsm_8h_1ac25c0b170bac58e699bb9e1533393b6a"/><section>
<title>fsm_tools_list_clear()</title>
<indexterm><primary>fsm_tools_list_clear</primary><secondary>fsm.h</secondary></indexterm>
<indexterm><primary>fsm.h</primary><secondary>fsm_tools_list_clear</secondary></indexterm>
<para><computeroutput>void fsm_tools_list_clear (<link linkend="_structfsm__struct__list__tool">fsm_struct_list_tool</link> ** ml)</computeroutput></para>
<para>
<formalpara>
<title>
Parameters</title>
<para>
<table frame="all">
<tgroup cols="2" align="left" colsep="1" rowsep="1">
<colspec colwidth="1*"/>
<colspec colwidth="4*"/>
<tbody>
<row>
<entry>**ml</entry><entry></entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</formalpara>
<formalpara><title>See also</title>
<para><link linkend="_tools__list_8c_1a274e703d76bfc06daa46ec5924187fa3">fsm_tools_list_test()</link> </para>
</formalpara>
</para>
Here is the caller graph for this function:<para>
<informalfigure>
<mediaobject>
<imageobject>
<imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="../../dd/d01/fsm_8h_ac25c0b170bac58e699bb9e1533393b6a_icgraph.svg"></imagedata>
</imageobject>
</mediaobject>
</informalfigure>
</para>
</section>
<anchor xml:id="_fsm_8h_1ae5d5ccdff72b50a67c62ae920224c927"/><section>
<title>fsm_tools_list_insert()</title>
<indexterm><primary>fsm_tools_list_insert</primary><secondary>fsm.h</secondary></indexterm>
<indexterm><primary>fsm.h</primary><secondary>fsm_tools_list_insert</secondary></indexterm>
<para><computeroutput>void fsm_tools_list_insert (<link linkend="_structfsm__struct__list__tool">fsm_struct_list_tool</link> ** ml, int value)</computeroutput></para>
<para>
<formalpara>
<title>
Parameters</title>
<para>
<table frame="all">
<tgroup cols="2" align="left" colsep="1" rowsep="1">
<colspec colwidth="1*"/>
<colspec colwidth="4*"/>
<tbody>
<row>
<entry>**ml</entry><entry>
<para></para>
</entry>
</row>
<row>
<entry>value</entry><entry></entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</formalpara>
<formalpara><title>See also</title>
<para><link linkend="_tools__list_8c_1a274e703d76bfc06daa46ec5924187fa3">fsm_tools_list_test()</link> </para>
</formalpara>
</para>
Here is the caller graph for this function:<para>
<informalfigure>
<mediaobject>
<imageobject>
<imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="../../dd/d01/fsm_8h_ae5d5ccdff72b50a67c62ae920224c927_icgraph.svg"></imagedata>
</imageobject>
</mediaobject>
</informalfigure>
</para>
</section>
<anchor xml:id="_fsm_8h_1a5849dc2b70ef4683f15e6f4b33575780"/><section>
<title>fsm_tools_list_length()</title>
<indexterm><primary>fsm_tools_list_length</primary><secondary>fsm.h</secondary></indexterm>
<indexterm><primary>fsm.h</primary><secondary>fsm_tools_list_length</secondary></indexterm>
<para><computeroutput>int fsm_tools_list_length (<link linkend="_structfsm__struct__list__tool">fsm_struct_list_tool</link> * ml)</computeroutput></para>
<para>
<formalpara>
<title>
Parameters</title>
<para>
<table frame="all">
<tgroup cols="2" align="left" colsep="1" rowsep="1">
<colspec colwidth="1*"/>
<colspec colwidth="4*"/>
<tbody>
<row>
<entry>**ml</entry><entry></entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</formalpara>
<formalpara><title>See also</title>
<para><link linkend="_tools__list_8c_1a274e703d76bfc06daa46ec5924187fa3">fsm_tools_list_test()</link> </para>
</formalpara>
</para>
Here is the caller graph for this function:<para>
<informalfigure>
<mediaobject>
<imageobject>
<imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="../../dd/d01/fsm_8h_a5849dc2b70ef4683f15e6f4b33575780_icgraph.svg"></imagedata>
</imageobject>
</mediaobject>
</informalfigure>
</para>
</section>
<anchor xml:id="_fsm_8h_1a680078a92dca5a303408d5d997b47848"/><section>
<title>fsm_tools_list_pop()</title>
<indexterm><primary>fsm_tools_list_pop</primary><secondary>fsm.h</secondary></indexterm>
<indexterm><primary>fsm.h</primary><secondary>fsm_tools_list_pop</secondary></indexterm>
<para><computeroutput>int fsm_tools_list_pop (<link linkend="_structfsm__struct__list__tool">fsm_struct_list_tool</link> ** ml)</computeroutput></para>
<para>
<formalpara>
<title>
Parameters</title>
<para>
<table frame="all">
<tgroup cols="2" align="left" colsep="1" rowsep="1">
<colspec colwidth="1*"/>
<colspec colwidth="4*"/>
<tbody>
<row>
<entry>**ml</entry><entry></entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</formalpara>
<formalpara><title>See also</title>
<para><link linkend="_tools__list_8c_1a274e703d76bfc06daa46ec5924187fa3">fsm_tools_list_test()</link> </para>
</formalpara>
</para>
Here is the caller graph for this function:<para>
<informalfigure>
<mediaobject>
<imageobject>
<imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="../../dd/d01/fsm_8h_a680078a92dca5a303408d5d997b47848_icgraph.svg"></imagedata>
</imageobject>
</mediaobject>
</informalfigure>
</para>
</section>
<anchor xml:id="_fsm_8h_1a274e703d76bfc06daa46ec5924187fa3"/><section>
<title>fsm_tools_list_test()</title>
<indexterm><primary>fsm_tools_list_test</primary><secondary>fsm.h</secondary></indexterm>
<indexterm><primary>fsm.h</primary><secondary>fsm_tools_list_test</secondary></indexterm>
<para><computeroutput>void fsm_tools_list_test ( )</computeroutput></para>
<para><formalpara><title>See also</title>
<para><link linkend="_fsm_8h_1a5da29952715596bf17643f907bd64daf">fsm_list_init_measures()</link>()</para>
<para><link linkend="_fsm_8h_1a1c4245816950e71cae94f99b59c417a9">fsm_add_log()</link> </para>
<para><link linkend="_tools__list_8c_1a100805032e9731666a4c0c528b4512cb">fsm_tools_list_insert()</link> </para>
<para><link linkend="_tools__list_8c_1a204d9cfc6f205fb7ebf1b744d71c639e">fsm_tools_list_pop()</link> </para>
<para><link linkend="_tools__list_8c_1a72e3e8ba6fe255fe3dccf3eb30d1e24f">fsm_tools_list_view()</link> </para>
<para><link linkend="_tools__list_8c_1a090a6a2c0b5ef0dde68412c2885f9c98">fsm_tools_list_clear()</link> </para>
</formalpara>
</para>
Here is the call graph for this function:<para>
<informalfigure>
<mediaobject>
<imageobject>
<imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="../../dd/d01/fsm_8h_a274e703d76bfc06daa46ec5924187fa3_cgraph.svg"></imagedata>
</imageobject>
</mediaobject>
</informalfigure>
</para>
Here is the caller graph for this function:<para>
<informalfigure>
<mediaobject>
<imageobject>
<imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="../../dd/d01/fsm_8h_a274e703d76bfc06daa46ec5924187fa3_icgraph.svg"></imagedata>
</imageobject>
</mediaobject>
</informalfigure>
</para>
</section>
<anchor xml:id="_fsm_8h_1a1c87d4ebbff9faab298659b295b5ea15"/><section>
<title>fsm_tools_list_view()</title>
<indexterm><primary>fsm_tools_list_view</primary><secondary>fsm.h</secondary></indexterm>
<indexterm><primary>fsm.h</primary><secondary>fsm_tools_list_view</secondary></indexterm>
<para><computeroutput>void fsm_tools_list_view (<link linkend="_structfsm__struct__list__tool">fsm_struct_list_tool</link> * ml)</computeroutput></para>
<para>
<formalpara>
<title>
Parameters</title>
<para>
<table frame="all">
<tgroup cols="2" align="left" colsep="1" rowsep="1">
<colspec colwidth="1*"/>
<colspec colwidth="4*"/>
<tbody>
<row>
<entry>**ml</entry><entry></entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</formalpara>
<formalpara><title>See also</title>
<para><link linkend="_tools__list_8c_1a274e703d76bfc06daa46ec5924187fa3">fsm_tools_list_test()</link> </para>
</formalpara>
</para>
Here is the call graph for this function:<para>
<informalfigure>
<mediaobject>
<imageobject>
<imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="../../dd/d01/fsm_8h_a1c87d4ebbff9faab298659b295b5ea15_cgraph.svg"></imagedata>
</imageobject>
</mediaobject>
</informalfigure>
</para>
Here is the caller graph for this function:<para>
<informalfigure>
<mediaobject>
<imageobject>
<imagedata width="50%" align="center" valign="middle" scalefit="0" fileref="../../dd/d01/fsm_8h_a1c87d4ebbff9faab298659b295b5ea15_icgraph.svg"></imagedata>
</imageobject>
</mediaobject>
</informalfigure>
</para>
</section>
</section>
</section>