Go to file
Jean Sirmai 56b539e9c0
include/fsm.h: prepares the building of a log and create src/readme.doc
This commit is the first in a series that will make the fsm apt to build the
log.

The log (or journal) records events chronologically from the start to the end
of the programme.
Its quantitatively most important part is to report on the execution of the
session.

The log will be created from the fsm (finite state machine) which describes
all the possible states of the Gem-graph client and all the transitions between
them.

The fsm header is introduced in this commit.

It lists the structures, functions and tools that the log will need and details
the presentation of events in the log
[date - rank - source file - source function - value].

The src/readme.docs file provides an initial overview of the missions and their
distribution in the code files.
2024-11-08 12:27:38 +01:00
data src/*, simple Gtk application 2024-11-01 23:53:24 +01:00
docs docs/*: integrate doxygen, create a documentation zone, adds notes 2024-11-01 23:54:43 +01:00
include include/fsm.h: prepares the building of a log and create src/readme.doc 2024-11-08 12:27:38 +01:00
scripts scripts/*: add a script that can list every function name 2024-11-01 23:54:39 +01:00
src include/fsm.h: prepares the building of a log and create src/readme.doc 2024-11-08 12:27:38 +01:00
.gitignore docs/*: integrate doxygen, create a documentation zone, adds notes 2024-11-01 23:54:43 +01:00
COPYING src/*, simple Gtk application 2024-11-01 23:53:24 +01:00
Makefile docs/*: integrate doxygen, create a documentation zone, adds notes 2024-11-01 23:54:43 +01:00
manifest.scm src/*, simple Gtk application 2024-11-01 23:53:24 +01:00

docs/readme

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*  Gem-graph client                                                            *
*  What the documentation contains and how to use it                           *
*  Docstring content: rationale and usage                                      *
*  Alphabetic Index 2024 of functions names                                    *
*                                                                              *
*  Copyright © 2021 Libre en Communs <contact@a-lec.org>                       *
*  Copyright © 2024 Jean Sirmai <jean@a-lec.org>                               *
*                                                                              *
*  This file is part of Gem-graph.                                             *
*                                                                              *
*  This program is free software: you can redistribute it and/or modify it     *
*  under the terms of the GNU Affero General Public License                    *
*  as publishedby the Free Software Foundation,                                *
*  either version 3 of the License, or (at your option) any later version.     *
*                                                                              *
*  This program is distributed in the hope that it will be useful,             *
*  but WITHOUT ANY WARRANTY; without even the implied warranty of              *
*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.                        *
*  See the GNU Affero General Public License for more details.                 *
*                                                                              *
*  You should have received a copy of the GNU Affero General Public License    *
*  along with this program.  If not, see <http://www.gnu.org/licenses/>.       *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */





/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

Attention
    Let's repeat that, because it is often overlooked:
    to document global objects (functions, typedefs, enum, macros, etc),
    you must document the file in which they are defined.
    In other words, there must at least be a
		/** \file */
	   (or  /*! \file */)
    line in this file.

---------------------------------------------------------------------------
 *
 *  docstrings
 *  ----------
 * Pour chaque fonction, quelles sont les infos prioritaires ?
 *
 * @brief
 * @details
 * @date
 * @author
 * @callgraph
 * @see (liste des fonctions appelées par cette fonction)
 * @callergraph
 * @see (liste des fonctions qui appellent cette fonction)
 * @param (liste des paramètres)
 * @return

 autres (à envisager)  @see   https://www.doxygen.nl/manual/commands.html

--------------------------------------------------------------------------------
git commit 2024-10-14  avant d'exécuter une commande sed
qui remplacera tous les commentaires 'fantômes':
/** phantom documentation used to test the functioning of doxygen */
/**< a_variable_name           phantom documentation */


sed -i 's/phantom documentation used to test the functioning of doxygen/\n
* @brief \n * @details \n * @dir \n * @file \n * @date \n * @author \n
* @callgraph \n * @see \n * @callergraph \n * @see\n * @param \n * @return \n/'
./src/main.c   <  or any other file...

NB  signal et journal n'ont pas été 'tagués'  <<<<<<<<<<
--------------------------------------------------------------------------------


 *
 *
 *  TODO : actuellement, valgrind bin/gem-graph-client détecte :
 *
 * HEAP SUMMARY:
 *     in use at exit: 11,537,505 bytes in 42,285 blocks
 *   total heap usage: 483,548 allocs,
 *                     441,263 frees,
 *                     112,049,363 bytes allocated
 * LEAK SUMMARY:
 *    definitely lost: 40,161 bytes in 79 blocks
 *    indirectly lost: 11,233 bytes in 489 blocks
 *      possibly lost: 7,879,639 bytes in 7,844 blocks
 *    still reachable: 3,412,408 bytes in 32,248 blocks
 *         suppressed: 0 bytes in 0 blocks
 * Rerun with --leak-check=full to see details of leaked memory
 *
 * valgrind  --leak-check=full   >  ERROR SUMMARY: 1572 errors from 680 contexts
 *           --track-origins=yes    ERROR SUMMARY: 896 errors from 4 contexts
 *           --show-leak-kinds=all
 *
 * sanitize  <<
 *
 *
 *  TODO  des scripts devraient pouvoir recueillir ces informations
 *  pour produire automatiquement, à la demande, des listes comme celle qui suit.
 *  (voir le dossier 'scripts')
 *  > plutôt utiliser Doxygen.
 *
 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */







/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
 *
 *   C O N V E N T I O N S   E T   R È G L E S   D E   N O M M A G E  -  2 0 2 4
 *
 *        Le nom d'une fonction doit permettre d'identifier facilement:
 *              - le lieu (le fichier) où elle est définie,
 *              - le type d'action qu'elle exécute et
 *              - les objets modifiés par son action.
 *
 *                              -    -    -
 *
 *       Ces trois informations sont encodées au moyen de trois "préfixes"
 *          associés et concaténés dans cet ordre pour former le nom.
 *
 *                              -    -    -
 *
 *               En octobre 2024, la première version de cet:
 *         "index alphabétique des fonctiond du client gem-graph"
 *        classe en trois listes l'ensemble des préfixes utilisés.
 *
 *                 Ces listes sont en cours d'élaboration.
 *         Elles ne sont ni limitatives ni exhaustives ni ordonnées.
 *                                 TODO
 *
 *                              -    -    -
 *
 *   Le premier préfixe est l'adresse du fichier dans la hiérarchie "src":
 *   ex:  graphics_draw_
 *        fsm_measures_manager_
 *        util_draw_gl_
 *        widget_one_rule_algebra_assign_
 *
 *   Le deuxième préfixe est choisi dans une liste de fonctions types:
 *        get, set, reset, read, write, print, edit, concat, design,
 *        init, create, add, remove, erase, restore, trigger, draw, push
 *        setup, shutdown, update, list, sort, seek, select, fix, debug,
 *        render, realize, unrealize, activate, exec, stop, signal,
 *
 *   Le troisième préfixe est choisi dans une liste d'objets ou d'états
 *   qui sont modifiés par les fonctions.
 *   Ce préfixe peut être composé de deux, trois ou quatre items
 *   appartenant à cette liste et d'une conjonction si besoin.
 *   ex: axis_slider, stack_slot_size, user_tree_model_child,
 *       grids_on_space_faces_lines, current_model_before_editing, etc.
 *
 *        number, string, view, image, window, list, tree, stack,
 *        file, buffer, callback, signal,
 *        widget, button, slider, color, glarea, shader,
 *        point, line, plan, space_unit, site, arrow, slot, vertex, ridge, axis
 *        state, rules, data, results, stock,
 *
 *
 *
 *  Le 2024-10-05, seules trois fonctions ne sont pas nommées selon ces règles:
 *      >  create_axis_slider, free_stack_slot, free_stack_slot_size <
 *
 *  et les noms de cinq autres pourraient être améliorés.
 *     graphics_shutdown_graphics_stack  >  graphics_shutdown_stack  <  ex.
 *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */



create_axis_slider                              util/draw/gl   223     <<   to rename
free_stack_slot                                 graphics/init   36     <<   to rename
free_stack_slot_size                            graphics/init   37     <<   to rename
get_user_tree_model                             util/tree       66  static
get_user_tree_model_child                       util/tree       49  static
graphics_create_shader                          187   ?
graphics_debug_callback                         graphics/init   53  static
graphics_draw                                   graphics/draw  150
graphics_draw_color                             graphics/draw  74
graphics_draw_grids_on_space_faces_lines        graphics/grid  129
graphics_draw_grids_on_space_faces_vertex       graphics/grid  75
graphics_draw_line                              graphics/draw  100
graphics_draw_one_arrow_line                    365   ?
graphics_draw_one_arrow_vertex                  355   ?
graphics_draw_plan                              graphics/draw  124
graphics_draw_space_ridges_lines                graphics/grid  62
graphics_draw_space_ridges_vertex               graphics/grid  30
graphics_draw_vertex                            graphics/draw  40
graphics_init                                   graphics/init  108
graphics_init_buffers                           graphics/init  326
graphics_init_graphics_stack                    127    ?
graphics_init_shaders                           graphics/init  370
graphics_model_setup                            graphics/init  228
graphics_print_stack                            221    ?
graphics_render_stack                           87     ?
graphics_set_arrow                              401    ?
graphics_setup_glarea                           89     ?
graphics_shutdown                               graphics/init  169
graphics_shutdown_graphics_stack                128                    <<   to rename
graphics_stack                                  graphics/init   34
graphics_stack_size                             graphics/init   35
graphics_stack_t                                graphics.h
graphics_update_axis_stack                      129    ?
fsm_add_data                                    fsm/measures/data_list
fsm_add_displayable                             fsm/preferences/manager
fsm_add_measure                                 fsm/measures/manager
fsm_add_result                                  fsm/results/manager
fsm_disp_add_chart                              fsm/measures/disp_list
fsm_disp_get_chart                              fsm/measures/disp_list
fsm_disp_remove_chart                           fsm/measures/disp_list
fsm_enum_exec_edit                              fsm.h
fsm_enum_journal_severity                       fsm.h
fsm_enum_journal_source                         fsm.h
fsm_enum_measure_type                           fsm.h
fsm_enum_state_rules_data                       fsm.h
fsm_enum_store_restore_reset                    fsm.h
fsm_get_data                                    fsm/measures/data_list
fsm_get_exec_edit                               fsm/dispatch
fsm_get_preferences_state                       fsm/dispatch
fsm_get_state_rules_data                        fsm/dispatch
fsm_init                                        fsm/dispatch
fsm_journal_clear                               src/journal
fsm_journal_event                               fsm/dispatch
fsm_journal_init                                src/journal
fsm_journal_length                              src/journal
fsm_journal_pop_back                            src/journal
fsm_journal_publication_request                 fsm/dispatch
fsm_journal_publish                             src/journal
fsm_journal_push_front                          src/journal
fsm_journal_seek                                src/journal
fsm_list_init_displayables                      fsm/prefer
fsm_list_init_measures                          fsm/measures/manager
fsm_list_init_preferences                       fsm/preferences/manager
fsm_list_init_results                           fsm/results/manager
fsm_list_tools_clear                            fsm/measures/tools_list
fsm_list_tools_insert                           fsm/measures/tools_list
fsm_list_tools_length                           fsm/measures/tools_list
fsm_list_tools_pop                              fsm/measures/tools_list
fsm_list_tools_test                             fsm/measures/tools_list
fsm_list_tools_view                             fsm/measures/tools_list
fsm_remove_data                                 fsm/measures/data_list
fsm_reset_all_situations_values                 fsm/preferences/manager
fsm_rule_trig_measure                           fsm/measures/manager
fsm_set_exec_edit                               fsm/dispatch
fsm_set_preferences_modified                    fsm/dispatch
fsm_set_state_rules_data                        fsm/dispatch
fsm_set_store_restore_reset                     fsm/dispatch
fsm_struct_journal                              fsm.h
fsm_struct_journal_unit                         fsm.h
fsm_struct_list_data                            fsm.h
fsm_struct_list_disp                            fsm.h
fsm_struct_list_tool                            fsm.h
on_auto_notification                            signal   37       static
on_axis_value_change                            signal   181
on_bind_user_tree_factory                       signal   81
on_clicked_topbar_right_home                    signal   373            <<  to rename
on_clicked_topbar_right_search                  signal   364            <<  to rename
on_discard_current_model_before_editing         signal   228
on_entry_name_delete_after                      signal   547
on_entry_name_insert_after                      signal   542
on_glarea_realize                               signal   132
on_glarea_render                                signal   112
on_glarea_unrealize                             signal   158
on_measure_ ...                                 signal   453   sqq.
on_realize_debug                                util/draw/gl   335  static
on_render_debug                                 util/draw/gl   345  static
on_resetting_XYZ_in_state_page                  signal   404
on_save_current_model_before_editing            signal   220
on_select_rules_first                           signal   446
on_setup_user_tree_factory                      signal   73
on_situations_box_do_reset                      signal   412
on_start_new_measure                            signal   439
on_toggle_exec_edit                             signal   254            <<  to rename
on_toggle_state_rules_data                      signal   286            <<  to rename
on_topbar_right_measure_clicked                 signal   426
on_updating_objects_transparencies              signal   389
on_user_tree_expander_toggled                   signal   64    static
on_windows_activation                           widget/dispatch    67
on_windows_startup                              widget/dispatch    61
on_write_current_model                          signal   236
parse_model_get_dim                             util/parse    231
parse_model_get_dim_value                       util/parse    244
parse_model_get_multiplicity                    util/parse    255
parse_model_get_next_arrow                      util/parse    346
parse_model_get_next_state                      util/parse    269
parse_model_get_state_arrows_count              util/parse    295
parse_model_init                                29    (not used)
parse_model_shutdown                            util/parse    88
parse_parse_model_init                          util/parse    46
shader frag                                     graphics/shader
shader vert                                     graphics/shader
stack_index                                     stack_index      38
stack_index_size                                stack_index      39
stack_index_t                                   util/draw/gl.c   32
switch_state_rules_data                         signal           305    static
TreeNode_t                                      widget.h  (rename ?)
util_concat                                     util/strings_op
util_gl_clean_stack_index                       util/draw/gl.c   150
util_gl_get_stack                               util/draw/gl.c   66
util_gl_init_stack                              util/draw/gl.c   102
util_gl_is_ready                                util/draw/gl.c   84
util_gl_is_util_ready                           92   TODO
util_gl_render_stack                            util/draw/gl.c   166
util_gl_set_arrow                               util/draw/gl.c   42
util_gl_setup_glarea                            util/draw/gl.c   364
util_gl_shutdown_all_stacks                     util/draw/gl.c   207
util_gl_shutdown_stack                          util/draw/gl.c   133
util_gl_update_axis                             util/draw/gl.c   187
util_list_2x2_     ^c^v  (8 fonctions)          util/list_2x2
util_pile_         ^c^v  (5 fonctions)          util/pile
util_read_file                                  util/io
util_sorted_list_  ^c^v  (5 fonctions)          util/sorted_list
util_test_double_list                           util/tests
util_test_pile                                  util/tests
util_test_sorted_list                           util/tests
util_trigger_test                               util/tests
widget_add_tree_child_node                      util/tree   32
widget_create_user_rules_tree_node              util/tree   41
widget_design_dialog_window                     widget/dispatch
widget_design_main_window                       widget/dispatch
widget_design_text_window                       widget/dispatch
widget_measure_do_select_rules_first            widget/measure/dispatch
widget_measure_do_ ...                          295 sqq.
widget_measure_event_occurences_dates           widget/measure/dispatch
widget_measure_event_occurences_nb              widget/measure/dispatch
widget_measure_event_occurences_situations      widget/measure/dispatch
widget_measure_other_events_between_the_two     widget/measure/dispatch
widget_measure_time_elapsed_between_two_events  widget/measure/dispatch
widget_get_address_text_theory                  widget/topbar/dispatch
widget_get_address_text_practice                widget/topbar/dispatch
widget_get_btt_label_data                       widget/topbar/left
widget_get_btt_label_rules                      widget/topbar/left
widget_get_btt_label_state                      widget/topbar/left
widget_get_btt_label_synth                      widget/topbar/left
widget_get_dialog_window                        widget/dispatch
widget_get_graph_view_control                   widget/state/middle
widget_get_main_window                          widget/dispatch
widget_get_non_time_dependent                   widget/synth/dispatch
widget_get_object_transparency                  widget/state/top
widget_get_page_data                            widget/results/dispatch
widget_get_page_engine                          104   TODO
widget_get_page_measure                         widget/measure/dispatch
widget_get_page_state                           widget/state/dispatch
widget_get_page_synth                           widget/synth/dispatch
widget_get_pane_all_rules_left                  widget/all_rules/dispatch
widget_get_pane_selected_rule_right             widget/one_rule/dispatch
widget_get_results_box_display                  widget/results/display
widget_get_results_box_organize                 widget/results/organize
widget_get_results_box_time                     widget/results/display
widget_get_rule_edition_tools                   widget/one_rule/geometry/edit
widget_get_rule_investigation_tools             widget/one_rule/geometry/investigate
widget_get_rule_geometry_and_algebra            187   TODO  (not yet used)
widget_get_rules_pilot_box                      widget/all_rules/tree/pilot_box
widget_get_rules_tree_tools                     widget/all_rules/tree/pilot_box
widget_get_rules_use                            widget/all_rules/tree/freq
widget_get_selected_rule                        widget/one_rule/dispatch
widget_get_selected_rule_algebra                widget/one_rule/algebra/dispatch
widget_get_selected_rule_assignations_list_btt  widget/one_rule/algebra/assign
widget_get_selected_rule_before_after           widget/one_rule/geometry/geometry
widget_get_selected_rule_camera                 widget/one_rule/geometry/camera
widget_get_selected_rule_conditions_list_btt    widget/one_rule/algebra/conditions
widget_get_selected_rule_geometry               widget/one_rule/geometry/dispatch
widget_get_selected_rule_identity_btt           widget/one_rule/algebra/identity
widget_get_sequence_control                     widget/state/bottom
widget_get_space_edit_control                   widget/state/bottom
widget_get_space_view                           widget/state/middle
widget_get_space_vs_non_time_dependent          widget/synth/dispatch
widget_get_text_from_address                    widget/topbar/modal
widget_get_text_window                          widget/dispatch
widget_get_time_dependent                       widget/synth/time
widget_get_user_rules_tree                      util/tree   88
widget_reset_XYZ_in_state_pane                  widget/state/middle   TODO (dispatch)
widget_reset_XYZ_scrollbars_rule                166   TODO
widget_reset_XYZ_scrollbars_state               167   TODO
widget_reset_XYZ_scrollbars_synth               168   TODO
widget_set_item_text                            widget/one_rule/algebra/dispatch
widget_set_objects_value                        widget/state/top
widget_set_situations_value                     widget/state/top
window_design_topbar_left                       widget/dispatch
window_design_topbar_right                      widget/dispatch