146 lines
7.8 KiB
XML
146 lines
7.8 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="_main_8c" xml:lang="en-US">
|
||
|
<title>src/main.c File Reference</title>
|
||
|
<indexterm><primary>src/main.c</primary></indexterm>
|
||
|
<para>
|
||
|
|
||
|
<para>Gem-graph client Main functions. </para>
|
||
|
|
||
|
</para>
|
||
|
<programlisting linenumbering="unnumbered">#include "../include/widget.h"<?linebreak?>#include "../include/signal.h"<?linebreak?>#include "../include/fsm.h"<?linebreak?></programlisting><simplesect>
|
||
|
<title>Functions </title>
|
||
|
<itemizedlist>
|
||
|
<listitem><para>int <link linkend="_main_8c_1a3c04138a5bfe5d72780bb7e82a18e627">main</link> (int argc, char **argv)</para>
|
||
|
|
||
|
<para>gem-graph-client <link linkend="_main_8c_1a3c04138a5bfe5d72780bb7e82a18e627">main()</link> </para>
|
||
|
</listitem>
|
||
|
</itemizedlist>
|
||
|
</simplesect>
|
||
|
<section>
|
||
|
<title>Detailed Description</title>
|
||
|
|
||
|
<para>Gem-graph client Main functions. </para>
|
||
|
|
||
|
<para>Copyright © 2021 Libre en Communs <link xlink:href="mailto:contact@a-lec.org">contact@a-lec.org</link> Copyright © 2021 Arthur Menges <link xlink:href="mailto:arthur.menges@a-lec.org">arthur.menges@a-lec.org</link> Copyright © 2021-2024 Adrien Bourmault <link xlink:href="mailto:neox@a-lec.org">neox@a-lec.org</link> Copyright © 2021-2024 Jean Sirmai <link xlink:href="mailto:jean@a-lec.org">jean@a-lec.org</link></para>
|
||
|
|
||
|
<para>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 published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.</para>
|
||
|
|
||
|
<para>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.</para>
|
||
|
|
||
|
<para>You should have received a copy of the GNU Affero General Public License along with this program. If not, see <link xlink:href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</link>.</para>
|
||
|
|
||
|
<para>gem-graph-client main file</para>
|
||
|
|
||
|
<para>Sur quel modèle se guider pour structurer le client gem-graph ?</para>
|
||
|
|
||
|
<para><link xlink:href="https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93viewmodel">https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93viewmodel</link> <link xlink:href="https://en.wikipedia.org/wiki/Multitier_architecture">https://en.wikipedia.org/wiki/Multitier_architecture</link></para>
|
||
|
|
||
|
<para>ORGANISATION ACTUELLE (Octobre 2024)</para>
|
||
|
<section xml:id="_main_8c_1autotoc_md0">
|
||
|
<title>1) Les structures hierarchiques.</title>
|
||
|
|
||
|
<para>La description du 'design' des fenêtres se trouve dans le dossier 'widget' et s'organise naturellement en arborescence, en se calquant sur l'arborescence des widgets eux-mêmes.</para>
|
||
|
|
||
|
<para>Il sera donc facile de répartir cette description en dossiers et fichiers au fur à mesure de son développement.</para>
|
||
|
|
||
|
<para>Actuellement, par exemple, la fenêtre principale comporte : <blockquote>
|
||
|
<para>‍une barre de titre (décrite dans 'topbar') et un widget 'child' (la partie sous la barre de titre) qui peut prendre au moins trois apparences différentes :<itemizedlist>
|
||
|
<listitem>
|
||
|
<para>state (montre l'état de l'espace et les commandes associées)</para>
|
||
|
</listitem><listitem>
|
||
|
<para>rules (les règles et les commandes associées)</para>
|
||
|
</listitem><listitem>
|
||
|
<para>stock (les données provenant des mesures, les outils d'analyse, etc.) (nom provisoire : mal défini à ce stade; fonctions à répartir...) </para>
|
||
|
</listitem></itemizedlist>
|
||
|
</para>
|
||
|
</blockquote>La fenêtre principale s'ouvre sur la vue de l'état ('state.c') en mode 'EXEC'. Cette vue comporte trois panneaux (widgets) principaux: sup, moyen, inf ou encore: CONTRAST, CAMERA, CONTROL ou EDIT si on veut les nommer d'après leur fonction.</para>
|
||
|
|
||
|
<para>Lorsque la description de chaque widget s'affinera et demandera plus de place, ces trois widgets principaux deviendront des dossiers et les widgets qu'ils contiennent des fichiers (ou des dossiers si besoin) et ainsi de suite...</para>
|
||
|
</section>
|
||
|
<section xml:id="_main_8c_1autotoc_md1">
|
||
|
<title>2) Les structures transversales.</title>
|
||
|
|
||
|
<para>Les fonctions 'transversales' comme celles de 'graphics', 'parse', 'fsm', 'prefer', et peut-être des structures communes à tous les arbres, listes, etc. doivent pouvoir être accédées directement sans avoir à passer par la hiérarchie des widgets et/ou callbacks. Elles restent à la racine: 'src/</para>
|
||
|
|
||
|
<para>'finite state machine' ('fsm') va centraliser l'identification des états (apparences) de la fenêtre et des transitions entre ces apparences; Elle sera probablement décomposée en de nombreux 'sous-automates' tels que chaque état de la fenêtre soit une combinaison unique des états de ces sous-automates.</para>
|
||
|
|
||
|
<para>Exemple, muni des deux 'sous-automates' : <blockquote>
|
||
|
<para>‍ { EXEC, EDIT }; // xor { STATE, RULES, DATA }; // xor </para>
|
||
|
</blockquote>la 'finite state machine' peut se trouver dans 2 x 3 = 6 états. (voir fsm.h lignes 40-41)</para>
|
||
|
|
||
|
<para>Les grandes fonctions du client seront lancées par cette state machine :<itemizedlist>
|
||
|
<listitem>
|
||
|
<para>édition automatique (optimisation) de l'arbre des conditions</para>
|
||
|
</listitem><listitem>
|
||
|
<para>tests sur un mini-serveur local</para>
|
||
|
</listitem><listitem>
|
||
|
<para>analyses de données...</para>
|
||
|
</listitem></itemizedlist>
|
||
|
</para>
|
||
|
|
||
|
<para>Leur recueil et la mémorisation des préférences des utilisateurs sont des fonctions centrales mais leur mise en oeuvre suivra probalement des voies hiérarchiques.</para>
|
||
|
|
||
|
<para>On peut prévoir des préférences concernant l'apparence des widgets, les traductions, les 'disabilities'; etc. mais aussi concernant les méthodes de travail, l'usage des outils d'analyse, etc. >> des 'scripts' pour des 'méta-fonctions' (des 'macros') ? </para>
|
||
|
</section>
|
||
|
</section>
|
||
|
<section>
|
||
|
<title>Function Documentation</title>
|
||
|
<anchor xml:id="_main_8c_1a3c04138a5bfe5d72780bb7e82a18e627"/><section>
|
||
|
<title>main()</title>
|
||
|
<indexterm><primary>main</primary><secondary>main.c</secondary></indexterm>
|
||
|
<indexterm><primary>main.c</primary><secondary>main</secondary></indexterm>
|
||
|
<para><computeroutput>int main (int argc, char ** argv)</computeroutput></para><para>
|
||
|
|
||
|
<para>gem-graph-client <link linkend="_main_8c_1a3c04138a5bfe5d72780bb7e82a18e627">main()</link> </para>
|
||
|
</para>
|
||
|
|
||
|
<para><formalpara><title>Date</title>
|
||
|
|
||
|
<para>2024-04 </para>
|
||
|
</formalpara>
|
||
|
<formalpara><title>Author</title>
|
||
|
|
||
|
<para>Jean</para>
|
||
|
</formalpara>
|
||
|
<formalpara><title>See also</title>
|
||
|
|
||
|
<para>src/fsm/dispatch </para>
|
||
|
|
||
|
<para>src/signal</para>
|
||
|
|
||
|
<para>(none)</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>argc</entry><entry>
|
||
|
<para></para>
|
||
|
</entry>
|
||
|
</row>
|
||
|
<row>
|
||
|
<entry>**argv</entry><entry>
|
||
|
<para></para>
|
||
|
</entry>
|
||
|
</row>
|
||
|
</tbody>
|
||
|
</tgroup>
|
||
|
</table>
|
||
|
</para>
|
||
|
</formalpara>
|
||
|
<formalpara><title>Returns</title>
|
||
|
|
||
|
<para>status </para>
|
||
|
</formalpara>
|
||
|
</para>
|
||
|
</section>
|
||
|
</section>
|
||
|
</section>
|