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

1315 lines
55 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) management 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><simplesect>
<title>Classes </title>
<itemizedlist>
<listitem><para>struct <link linkend="_structfsm__struct__journal__unit">fsm_struct_journal_unit</link></para>
<para>phantom documentation used to test the functioning of doxygen </para>
</listitem>
<listitem><para>struct <link linkend="_structfsm__struct__journal">fsm_struct_journal</link></para>
<para>phantom documentation used to test the functioning of doxygen </para>
</listitem>
<listitem><para>struct <link linkend="_structfsm__struct__list__tool">fsm_struct_list_tool</link></para>
<para>phantom documentation used to test the functioning of doxygen </para>
</listitem>
<listitem><para>struct <link linkend="_structfsm__struct__list__data">fsm_struct_list_data</link></para>
<para>phantom documentation used to test the functioning of doxygen </para>
</listitem>
<listitem><para>struct <link linkend="_structfsm__struct__list__disp">fsm_struct_list_disp</link></para>
<para>phantom documentation used to test the functioning of doxygen </para>
</listitem>
</itemizedlist>
</simplesect>
<simplesect>
<title>Macros </title>
<itemizedlist>
<listitem><para><anchor xml:id="_fsm_8h_1a47ac95b770c96c317621e1296488e576"/>#define <emphasis role="strong">JOURNAL_LOG_MAX_LENGTH</emphasis>&#160;&#160;&#160;255</para>
</listitem>
<listitem><para><anchor xml:id="_fsm_8h_1a7af169265cd716e940b65232410d462e"/>#define <emphasis role="strong">n_rules</emphasis>&#160;&#160;&#160;128</para>
</listitem>
<listitem><para><anchor xml:id="_fsm_8h_1a1c57f0fbc36487a6b6a61a688968bd5f"/>#define <emphasis role="strong">n_objects</emphasis>&#160;&#160;&#160;32</para>
</listitem>
<listitem><para><anchor xml:id="_fsm_8h_1a6ac624784cce4cd90e2845b9a2d86412"/>#define <emphasis role="strong">n_situations</emphasis>&#160;&#160;&#160;128</para>
</listitem>
</itemizedlist>
</simplesect>
<simplesect>
<title>Typedefs </title>
<itemizedlist>
<listitem><para><anchor xml:id="_fsm_8h_1a6160d10d0af3ce294bde1326f8afba6d"/>typedef struct <link linkend="_structfsm__struct__journal__unit">fsm_struct_journal_unit</link> <emphasis role="strong">fsm_struct_journal_unit</emphasis></para>
<para>phantom documentation used to test the functioning of doxygen </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 used to test the functioning of doxygen </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 used to test the functioning of doxygen </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 used to test the functioning of doxygen </para>
</listitem>
</itemizedlist>
</simplesect>
<simplesect>
<title>Enumerations </title>
<itemizedlist>
<listitem><para>enum <link linkend="_fsm_8h_1ab761a6fdf1ac1e26a44f8f9524aa6da7">fsm_enum_journal_severity</link> { <?linebreak?><emphasis role="strong">CRITICAL</emphasis>
, <emphasis role="strong">ERROR</emphasis>
, <emphasis role="strong">WARNING</emphasis>
, <emphasis role="strong">INFO</emphasis>
, <?linebreak?><emphasis role="strong">MESSAGE</emphasis>
, <emphasis role="strong">DEBUG</emphasis>
, <emphasis role="strong">SPEW</emphasis>
}</para>
</listitem>
<listitem><para><anchor xml:id="_fsm_8h_1ae17fff59df266673b42b150568f1804c"/>enum <emphasis role="strong">fsm_enum_journal_source</emphasis> { <?linebreak?><emphasis role="strong">SOURCE</emphasis>
, <emphasis role="strong">TARGET</emphasis>
, <emphasis role="strong">JOURNAL</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>
, <emphasis role="strong">MAIN_WINDOW</emphasis>
, <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>
, <emphasis role="strong">TOPBAR</emphasis>
, <emphasis role="strong">TOPBAR_LEFT</emphasis>
, <?linebreak?><emphasis role="strong">TOPBAR_RIGHT</emphasis>
, <emphasis role="strong">TOPBAR_CENTER</emphasis>
, <emphasis role="strong">SYNTH_PAGE</emphasis>
, <emphasis role="strong">STATE_PAGE</emphasis>
, <?linebreak?><emphasis role="strong">RULES_PAGE</emphasis>
, <emphasis role="strong">MEASURES_PAGE</emphasis>
, <emphasis role="strong">RESULTS_PAGE</emphasis>
, <emphasis role="strong">SenumYNTH_GLAREA</emphasis>
, <?linebreak?><emphasis role="strong">SYNTH_ALL_RESULTS</emphasis>
, <emphasis role="strong">SYNTH_TIME_DEP_RESULTS</emphasis>
, <emphasis role="strong">SYNTH_TIME_INDEP_RESULTS</emphasis>
, <emphasis role="strong">STATE_TOP</emphasis>
, <?linebreak?><emphasis role="strong">STATE_BOTTOM</emphasis>
, <emphasis role="strong">STATE_GLAREA</emphasis>
, <emphasis role="strong">STATE_CAMERA</emphasis>
, <emphasis role="strong">RULE_GEOMETRY</emphasis>
, <?linebreak?><emphasis role="strong">RULE_GLAREA</emphasis>
, <emphasis role="strong">RULE_CAMERA</emphasis>
, <emphasis role="strong">RULE_ALGEBRA</emphasis>
, <emphasis role="strong">RULE_CONDITION</emphasis>
, <?linebreak?><emphasis role="strong">RULE_ASSIGN</emphasis>
, <emphasis role="strong">RULE_ID</emphasis>
, <emphasis role="strong">RULES_TREE</emphasis>
, <emphasis role="strong">RULES_COMPARE</emphasis>
, <?linebreak?><emphasis role="strong">RULES_USE</emphasis>
, <emphasis role="strong">MEASURES_TOOLS</emphasis>
, <emphasis role="strong">MEASURES__ACTIVITY</emphasis>
, <emphasis role="strong">MEASURES__DISPLAY</emphasis>
, <?linebreak?><emphasis role="strong">RESULTS</emphasis>
, <emphasis role="strong">TIME_DEP_RESULTS</emphasis>
, <emphasis role="strong">TIME_INDEP_RESULTS</emphasis>
, <emphasis role="strong">WIDGET</emphasis>
, <?linebreak?><emphasis role="strong">BUTTON</emphasis>
, <emphasis role="strong">SCROLL</emphasis>
, <emphasis role="strong">GLAREA</emphasis>
, <emphasis role="strong">TEXT</emphasis>
, <?linebreak?><emphasis role="strong">LABEL</emphasis>
, <emphasis role="strong">TREE</emphasis>
, <emphasis role="strong">SLIDER</emphasis>
, <emphasis role="strong">EXPANDER</emphasis>
, <?linebreak?><emphasis role="strong">ENTRY</emphasis>
, <emphasis role="strong">SWITCH_STATE_RULES_DATA</emphasis>
, <emphasis role="strong">SLIDER_X</emphasis>
, <emphasis role="strong">SLIDER_Y</emphasis>
, <?linebreak?><emphasis role="strong">SLIDER_Z</emphasis>
, <emphasis role="strong">SLIDER_A</emphasis>
, <emphasis role="strong">SLIDER_B</emphasis>
, <emphasis role="strong">SLIDER_C</emphasis>
}</para>
</listitem>
<listitem><para><anchor xml:id="_fsm_8h_1a7804536bf1011457f3d850e350772dca"/>enum <emphasis role="strong">fsm_enum_exec_edit</emphasis> { <emphasis role="strong">EXEC</emphasis>
, <emphasis role="strong">EDIT</emphasis>
}</para>
</listitem>
<listitem><para><anchor xml:id="_fsm_8h_1aa1132278a581ee80526ff5806e6ffa04"/>enum <emphasis role="strong">fsm_enum_state_rules_data</emphasis> { <emphasis role="strong">SYNTH</emphasis>
, <emphasis role="strong">STATE</emphasis>
, <emphasis role="strong">RULES</emphasis>
, <emphasis role="strong">DATA</emphasis>
}</para>
</listitem>
<listitem><para><anchor xml:id="_fsm_8h_1a5063f92d2c3765c7a4b664f5fc46143f"/>enum <emphasis role="strong">fsm_enum_store_restore_reset</emphasis> { <emphasis role="strong">STORE</emphasis>
, <emphasis role="strong">RESTORE</emphasis>
, <emphasis role="strong">RESET</emphasis>
}</para>
</listitem>
<listitem><para><anchor xml:id="_fsm_8h_1a06801f1f421dca2f4390645cb5b53c0c"/>enum <emphasis role="strong">fsm_enum_measure_type</emphasis> { <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>
</listitem>
</itemizedlist>
</simplesect>
<simplesect>
<title>Functions </title>
<itemizedlist>
<listitem><para>void <link linkend="_fsm_8h_1a76c4b511ecf3ddbc9e6d110641be665b">fsm_journal_publish</link> (<link linkend="_structfsm__struct__journal">fsm_struct_journal</link> jj)</para>
</listitem>
<listitem><para>void <link linkend="_fsm_8h_1ae6db4255fc3be03e0df09e7eda86b079">fsm_journal_init</link> (<link linkend="_structfsm__struct__journal">fsm_struct_journal</link> *jj)</para>
<para>2024-09-22 What types of events should be reported ? (fsm, widgets, ... ) For what purpose ? What information must be collected and transmitted ? How do you name and classify this information ? How do you present it ? </para>
</listitem>
<listitem><para>void <link linkend="_fsm_8h_1a00a6887e7c3875580234d3a621589b72">fsm_journal_push_front</link> (<link linkend="_structfsm__struct__journal">fsm_struct_journal</link> *jj, const char *file_source, const char *function_source, const char *string_value)</para>
</listitem>
<listitem><para>void <link linkend="_fsm_8h_1af6738f8ff2fb7cb835d3ac62f1428c68">fsm_journal_clear</link> (<link linkend="_structfsm__struct__journal">fsm_struct_journal</link> *jj, const char *file_source, const char *function_source, const char *string_value)</para>
</listitem>
<listitem><para>long <link linkend="_fsm_8h_1a9e063d297e80c32e2bac1ec04f24ecc2">fsm_journal_pop_back</link> (<link linkend="_structfsm__struct__journal">fsm_struct_journal</link> *jj, const char *file_source, const char *function_source, const char *string_value)</para>
</listitem>
<listitem><para>int <link linkend="_fsm_8h_1a2bc11a62378ff09ae3cbd8f40fa7fecd">fsm_journal_length</link> (<link linkend="_structfsm__struct__journal">fsm_struct_journal</link> jj)</para>
</listitem>
<listitem><para>void <link linkend="_fsm_8h_1aa414af4170798735875067122c33df8f">fsm_journal_seek</link> (<link linkend="_structfsm__struct__journal">fsm_struct_journal</link> jj, long usec, const char *file_source, const char *function_source, const char *string_value)</para>
</listitem>
<listitem><para>void <link linkend="_fsm_8h_1a435d1a5171a7d69662d701234722fee2">fsm_journal_publication_request</link> ()</para>
<para>The <link linkend="_fsm_2dispatch_8c_1a435d1a5171a7d69662d701234722fee2">fsm_journal_publication_request()</link> 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_1a8c67f42f95d48ee2469c9a27d65db3e6">fsm_journal_event</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><anchor xml:id="_fsm_8h_1ae228c78b1697ffd299d415ce2bdce515"/>void <emphasis role="strong">fsm_list_init_results</emphasis> ()</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><anchor xml:id="_fsm_8h_1ac59294a7ff6934d0704c85aaf08dc268"/>void <emphasis role="strong">fsm_add_result</emphasis> (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><anchor xml:id="_fsm_8h_1a333347e72f357cb37f0a545c447c7376"/>void <emphasis role="strong">fsm_list_tools_insert</emphasis> (<link linkend="_structfsm__struct__list__tool">fsm_struct_list_tool</link> **tl, int value)</para>
</listitem>
<listitem><para><anchor xml:id="_fsm_8h_1a0c50075642e8c9e2df938468a0c3a4e7"/>int <emphasis role="strong">fsm_list_tools_pop</emphasis> (<link linkend="_structfsm__struct__list__tool">fsm_struct_list_tool</link> **tl)</para>
</listitem>
<listitem><para><anchor xml:id="_fsm_8h_1a2417bd8612e5481a1f8c59a724e77090"/>int <emphasis role="strong">fsm_list_tools_length</emphasis> (<link linkend="_structfsm__struct__list__tool">fsm_struct_list_tool</link> *tl)</para>
</listitem>
<listitem><para><anchor xml:id="_fsm_8h_1a5860c9ab479a6df22431c6c2d7957081"/>void <emphasis role="strong">fsm_list_tools_clear</emphasis> (<link linkend="_structfsm__struct__list__tool">fsm_struct_list_tool</link> **tl)</para>
</listitem>
<listitem><para><anchor xml:id="_fsm_8h_1a2c684fe3ca456aacd9701cac89264022"/>void <emphasis role="strong">fsm_list_tools_view</emphasis> (<link linkend="_structfsm__struct__list__tool">fsm_struct_list_tool</link> *tl)</para>
</listitem>
<listitem><para><anchor xml:id="_fsm_8h_1a42d034fa79eeca039ae5ccef7b6a0c16"/>void <emphasis role="strong">fsm_list_tools_test</emphasis> ()</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><anchor xml:id="_fsm_8h_1aeb8e63af534703319fa3d909f166501c"/>void <emphasis role="strong">fsm_add_data</emphasis> (<link linkend="_structfsm__struct__list__data">fsm_struct_list_data</link> d, int *p_data, int *p_target)</para>
</listitem>
<listitem><para><anchor xml:id="_fsm_8h_1a51424f38912d7ac0f5df50d6f073bfff"/>int <emphasis role="strong">fsm_get_data</emphasis> (<link linkend="_structfsm__struct__list__data">fsm_struct_list_data</link> d, int from, int to)</para>
</listitem>
<listitem><para><anchor xml:id="_fsm_8h_1a9682b83c800a1d48695a58744997d4d8"/>void <emphasis role="strong">fsm_remove_data</emphasis> (<link linkend="_structfsm__struct__list__data">fsm_struct_list_data</link> d, int *p_data)</para>
</listitem>
</itemizedlist>
</simplesect>
<section>
<title>Detailed Description</title>
<para>fsm (Finite State Machine) management header </para>
<para>This file is part of Gem-graph. </para>
</section>
<section>
<title>Enumeration Type Documentation</title>
<anchor xml:id="_fsm_8h_1ab761a6fdf1ac1e26a44f8f9524aa6da7"/><section>
<title>fsm_enum_journal_severity</title>
<indexterm><primary>fsm_enum_journal_severity</primary><secondary>fsm.h</secondary></indexterm>
<indexterm><primary>fsm.h</primary><secondary>fsm_enum_journal_severity</secondary></indexterm>
<para><computeroutput>enum <link linkend="_fsm_8h_1ab761a6fdf1ac1e26a44f8f9524aa6da7">fsm_enum_journal_severity</link></computeroutput></para>
<para><itemizedlist>
<listitem>
<para>* * * - J O U R N A L M E T A R U L E S - * * * *</para>
<para>ref: sudo cat /var/log/messages</para>
<para>structure d&apos;un log:</para>
</listitem><listitem>
<para>date</para>
</listitem><listitem>
<para>rang (n° d&apos;ordre)</para>
</listitem><listitem>
<para>fichier</para>
</listitem><listitem>
<para>fonction</para>
</listitem><listitem>
<para>valeur, paramètre, descriptif, contexte,... (tout ce qui peut contribuer à améliorer la compréhension du journal) 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_1a8c67f42f95d48ee2469c9a27d65db3e6">fsm_journal_event()</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_1a8c67f42f95d48ee2469c9a27d65db3e6">fsm_journal_event()</link> (begin / end) dans une fonction, ils doivent avoir la même étiquette (les mêmes valeurs) : SEVERITY &amp; SOURCE</para>
<para><itemizedlist>
<listitem>
<para>* * * - J O U R N A L M E T A R U L E S - * * * <?linebreak?> </para>
</listitem></itemizedlist>
</para>
</section>
</section>
<section>
<title>Function Documentation</title>
<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>
</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_journal_event() </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>
</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 fsm_enum_exec_edit {}</para>
</formalpara>
<formalpara><title>Returns</title>
<para>choice_EXEC_EDIT </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>
</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_message_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_journal_init() </para>
<para>src/fsm/dispatch/fsm_journal_event() </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_message_from_main</entry><entry>
<para></para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</formalpara>
</para>
</section>
<anchor xml:id="_fsm_8h_1af6738f8ff2fb7cb835d3ac62f1428c68"/><section>
<title>fsm_journal_clear()</title>
<indexterm><primary>fsm_journal_clear</primary><secondary>fsm.h</secondary></indexterm>
<indexterm><primary>fsm.h</primary><secondary>fsm_journal_clear</secondary></indexterm>
<para><computeroutput>void fsm_journal_clear (<link linkend="_structfsm__struct__journal">fsm_struct_journal</link> * jj, const char * file_source, const char * function_source, const char * string_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></entry>
<entry></entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</formalpara>
return </para>
</section>
<anchor xml:id="_fsm_8h_1a8c67f42f95d48ee2469c9a27d65db3e6"/><section>
<title>fsm_journal_event()</title>
<indexterm><primary>fsm_journal_event</primary><secondary>fsm.h</secondary></indexterm>
<indexterm><primary>fsm.h</primary><secondary>fsm_journal_event</secondary></indexterm>
<para><computeroutput>void fsm_journal_event (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_journal_event&quot; to confirm the callergraph calls.</para>
<para><formalpara><title>Since</title>
<para>2024-08</para>
</formalpara>
<formalpara><title>See also</title>
<para><link linkend="_journal_8c">src/journal.c</link>/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><link linkend="_widget_2topbar_2dispatch_8c">src/widget/topbar/dispatch.c</link> * 3 </para>
<para>src/widget/one_rule/dispatch.c </para>
<para><link linkend="_conditions_8c">src/widget/one_rule/algebra/conditions.c</link> * 2 </para>
<para>src/widget/measure/dispatch.c </para>
<para><link linkend="_widget_2dispatch_8c">src/widget/dispatch.c</link> * 3 </para>
<para>src/widget/all_rules/dispatch.c </para>
<para><link linkend="_preferences_2manager_8c">src/fsm/preferences/manager.c</link> * 8 </para>
<para><link linkend="_measures_2manager_8c">src/fsm/measures/manager.c</link> * 2 </para>
<para>src/fsm/measures/tools_list.c * 4 </para>
<para><link linkend="_fsm_2dispatch_8c">src/fsm/dispatch.c</link> * 10 </para>
<para><link linkend="_results_2manager_8c">src/fsm/results/manager.c</link> </para>
<para>src/util/tree.c </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 <link linkend="_fsm_8h_1ab761a6fdf1ac1e26a44f8f9524aa6da7">fsm_enum_journal_severity</link> 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 ERROR WARNING INFO MESSAGE DEBUG SPEW 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>
</section>
<anchor xml:id="_fsm_8h_1ae6db4255fc3be03e0df09e7eda86b079"/><section>
<title>fsm_journal_init()</title>
<indexterm><primary>fsm_journal_init</primary><secondary>fsm.h</secondary></indexterm>
<indexterm><primary>fsm.h</primary><secondary>fsm_journal_init</secondary></indexterm>
<para><computeroutput>void fsm_journal_init (<link linkend="_structfsm__struct__journal">fsm_struct_journal</link> * jj)</computeroutput></para><para>
<para>2024-09-22 What types of events should be reported ? (fsm, widgets, ... ) For what purpose ? What information must be collected and transmitted ? How do you name and classify this information ? How do you present it ? </para>
</para>
<para>date clé (rank) fichier source fonction source +/- valeur <?linebreak?> <literallayout><computeroutput>time_t current_time = time(NULL);
</computeroutput></literallayout> Check if the time retrieval was successful if (current_time == ((time_t)-1)) printf(&quot;Error getting current time.\n&quot;); Convert to local time format and print printf(&quot; Current timestamp: %ld %s\n&quot;, current_time, message); printf(&quot; Current time: %s&quot;, ctime(&amp;current_time));</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></entry>
<entry></entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</formalpara>
return </para>
</section>
<anchor xml:id="_fsm_8h_1a2bc11a62378ff09ae3cbd8f40fa7fecd"/><section>
<title>fsm_journal_length()</title>
<indexterm><primary>fsm_journal_length</primary><secondary>fsm.h</secondary></indexterm>
<indexterm><primary>fsm.h</primary><secondary>fsm_journal_length</secondary></indexterm>
<para><computeroutput>int fsm_journal_length (<link linkend="_structfsm__struct__journal">fsm_struct_journal</link> jj)</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></entry>
<entry></entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</formalpara>
return </para>
</section>
<anchor xml:id="_fsm_8h_1a9e063d297e80c32e2bac1ec04f24ecc2"/><section>
<title>fsm_journal_pop_back()</title>
<indexterm><primary>fsm_journal_pop_back</primary><secondary>fsm.h</secondary></indexterm>
<indexterm><primary>fsm.h</primary><secondary>fsm_journal_pop_back</secondary></indexterm>
<para><computeroutput>long fsm_journal_pop_back (<link linkend="_structfsm__struct__journal">fsm_struct_journal</link> * jj, const char * file_source, const char * function_source, const char * string_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></entry>
<entry></entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</formalpara>
return </para>
</section>
<anchor xml:id="_fsm_8h_1a435d1a5171a7d69662d701234722fee2"/><section>
<title>fsm_journal_publication_request()</title>
<indexterm><primary>fsm_journal_publication_request</primary><secondary>fsm.h</secondary></indexterm>
<indexterm><primary>fsm.h</primary><secondary>fsm_journal_publication_request</secondary></indexterm>
<para><computeroutput>void fsm_journal_publication_request ( )</computeroutput></para><para>
<para>The <link linkend="_fsm_2dispatch_8c_1a435d1a5171a7d69662d701234722fee2">fsm_journal_publication_request()</link> 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 in the journal.</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><link linkend="_journal_8c">src/journal.c</link>/fsm_journal_publish() (called here) is the last function of the program to be executed.</para>
<para>The <link linkend="_structfsm__struct__journal">fsm_struct_journal</link> (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>src/main/main()</para>
<para>src/journal/fsm_journal_publish() </para>
</formalpara>
</para>
</section>
<anchor xml:id="_fsm_8h_1a76c4b511ecf3ddbc9e6d110641be665b"/><section>
<title>fsm_journal_publish()</title>
<indexterm><primary>fsm_journal_publish</primary><secondary>fsm.h</secondary></indexterm>
<indexterm><primary>fsm.h</primary><secondary>fsm_journal_publish</secondary></indexterm>
<para><computeroutput>void fsm_journal_publish (<link linkend="_structfsm__struct__journal">fsm_struct_journal</link> jj)</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></entry>
<entry></entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</formalpara>
return </para>
</section>
<anchor xml:id="_fsm_8h_1a00a6887e7c3875580234d3a621589b72"/><section>
<title>fsm_journal_push_front()</title>
<indexterm><primary>fsm_journal_push_front</primary><secondary>fsm.h</secondary></indexterm>
<indexterm><primary>fsm.h</primary><secondary>fsm_journal_push_front</secondary></indexterm>
<para><computeroutput>void fsm_journal_push_front (<link linkend="_structfsm__struct__journal">fsm_struct_journal</link> * jj, const char * file_source, const char * function_source, const char * string_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></entry>
<entry></entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</formalpara>
return </para>
</section>
<anchor xml:id="_fsm_8h_1aa414af4170798735875067122c33df8f"/><section>
<title>fsm_journal_seek()</title>
<indexterm><primary>fsm_journal_seek</primary><secondary>fsm.h</secondary></indexterm>
<indexterm><primary>fsm.h</primary><secondary>fsm_journal_seek</secondary></indexterm>
<para><computeroutput>void fsm_journal_seek (<link linkend="_structfsm__struct__journal">fsm_struct_journal</link> jj, long usec, const char * file_source, const char * function_source, const char * string_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></entry>
<entry></entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</formalpara>
return </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>
</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>
</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>
</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>
</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_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>
</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_1a8c67f42f95d48ee2469c9a27d65db3e6">fsm_journal_event()</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>
</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> window_design_topbar_left()</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>
</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>
</section>
</section>
</section>