\doxysection{src/main.c File Reference}
\hypertarget{main_8c}{}\label{main_8c}\index{src/main.c@{src/main.c}}


Gem-\/graph client Main functions.  


{\ttfamily \#include "{}../include/widget.\+h"{}}\newline
{\ttfamily \#include "{}../include/signal.\+h"{}}\newline
{\ttfamily \#include "{}../include/fsm.\+h"{}}\newline
\doxysubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
int \mbox{\hyperlink{main_8c_a3c04138a5bfe5d72780bb7e82a18e627}{main}} (int argc, char \texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*}argv)
\begin{DoxyCompactList}\small\item\em gem-\/graph-\/client \doxylink{main_8c_a3c04138a5bfe5d72780bb7e82a18e627}{main()} \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Gem-\/graph client Main functions. 

Copyright © 2021 Libre en Communs \href{mailto:contact@a-lec.org}{\texttt{ contact@a-\/lec.\+org}} Copyright © 2021 Arthur Menges \href{mailto:arthur.menges@a-lec.org}{\texttt{ arthur.\+menges@a-\/lec.\+org}} Copyright © 2021-\/2024 Adrien Bourmault \href{mailto:neox@a-lec.org}{\texttt{ neox@a-\/lec.\+org}} Copyright © 2021-\/2024 Jean Sirmai \href{mailto:jean@a-lec.org}{\texttt{ 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 published by 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 \href{http://www.gnu.org/licenses/}{\texttt{ http\+://www.\+gnu.\+org/licenses/}}.

gem-\/graph-\/client main file

Sur quel modèle se guider pour structurer le client gem-\/graph ?

\href{https://en.wikipedia.org/wiki/Model\%E2\%80\%93view\%E2\%80\%93viewmodel}{\texttt{ https\+://en.\+wikipedia.\+org/wiki/\+Model\%\+E2\%80\%93view\%\+E2\%80\%93viewmodel}} \href{https://en.wikipedia.org/wiki/Multitier_architecture}{\texttt{ https\+://en.\+wikipedia.\+org/wiki/\+Multitier\+\_\+architecture}}

ORGANISATION ACTUELLE (Octobre 2024)\hypertarget{main_8c_autotoc_md0}{}\doxysubsubsection{\texorpdfstring{1) Les structures hierarchiques.}{1) Les structures hierarchiques.}}\label{main_8c_autotoc_md0}
La description du \textquotesingle{}design\textquotesingle{} des fenêtres se trouve dans le dossier \textquotesingle{}widget\textquotesingle{} et s\textquotesingle{}organise naturellement en arborescence, en se calquant sur l\textquotesingle{}arborescence des widgets eux-\/mêmes.

Il sera donc facile de répartir cette description en dossiers et fichiers au fur à mesure de son développement.

Actuellement, par exemple, la fenêtre principale comporte \+: \begin{quote}
une barre de titre (décrite dans \textquotesingle{}topbar\textquotesingle{}) et un widget \textquotesingle{}child\textquotesingle{} (la partie sous la barre de titre) qui peut prendre au moins trois apparences différentes \+:
\begin{DoxyItemize}
\item state (montre l\textquotesingle{}état de l\textquotesingle{}espace et les commandes associées)
\item rules (les règles et les commandes associées)
\item stock (les données provenant des mesures, les outils d\textquotesingle{}analyse, etc.) (nom provisoire \+: mal défini à ce stade; fonctions à répartir...) 
\end{DoxyItemize}\end{quote}
La fenêtre principale s\textquotesingle{}ouvre sur la vue de l\textquotesingle{}état (\textquotesingle{}state.\+c\textquotesingle{}) en mode \textquotesingle{}EXEC\textquotesingle{}. Cette vue comporte trois panneaux (widgets) principaux\+: sup, moyen, inf ou encore\+: CONTRAST, CAMERA, CONTROL ou EDIT si on veut les nommer d\textquotesingle{}après leur fonction.

Lorsque la description de chaque widget s\textquotesingle{}affinera et demandera plus de place, ces trois widgets principaux deviendront des dossiers et les widgets qu\textquotesingle{}ils contiennent des fichiers (ou des dossiers si besoin) et ainsi de suite...\hypertarget{main_8c_autotoc_md1}{}\doxysubsubsection{\texorpdfstring{2) Les structures transversales.}{2) Les structures transversales.}}\label{main_8c_autotoc_md1}
Les fonctions \textquotesingle{}transversales\textquotesingle{} comme celles de \textquotesingle{}graphics\textquotesingle{}, \textquotesingle{}parse\textquotesingle{}, \textquotesingle{}fsm\textquotesingle{}, \textquotesingle{}prefer\textquotesingle{}, 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\+: \textquotesingle{}src/

\textquotesingle{}finite state machine\textquotesingle{} (\textquotesingle{}fsm\textquotesingle{}) va centraliser l\textquotesingle{}identification des états (apparences) de la fenêtre et des transitions entre ces apparences; Elle sera probablement décomposée en de nombreux \textquotesingle{}sous-\/automates\textquotesingle{} tels que chaque état de la fenêtre soit une combinaison unique des états de ces sous-\/automates.

Exemple, muni des deux \textquotesingle{}sous-\/automates\textquotesingle{} \+: \begin{quote}
 \{ EXEC, EDIT \}; // xor \{ STATE, RULES, DATA \}; // xor \end{quote}
la \textquotesingle{}finite state machine\textquotesingle{} peut se trouver dans 2 x 3 = 6 états. (voir fsm.\+h lignes 40-\/41)

Les grandes fonctions du client seront lancées par cette state machine \+:
\begin{DoxyItemize}
\item édition automatique (optimisation) de l\textquotesingle{}arbre des conditions
\item tests sur un mini-\/serveur local
\item analyses de données...
\end{DoxyItemize}

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.

On peut prévoir des préférences concernant l\textquotesingle{}apparence des widgets, les traductions, les \textquotesingle{}disabilities\textquotesingle{}; etc. mais aussi concernant les méthodes de travail, l\textquotesingle{}usage des outils d\textquotesingle{}analyse, etc. \texorpdfstring{$>$}{>}\texorpdfstring{$>$}{>} des \textquotesingle{}scripts\textquotesingle{} pour des \textquotesingle{}méta-\/fonctions\textquotesingle{} (des \textquotesingle{}macros\textquotesingle{}) ? 

\doxysubsection{Function Documentation}
\Hypertarget{main_8c_a3c04138a5bfe5d72780bb7e82a18e627}\label{main_8c_a3c04138a5bfe5d72780bb7e82a18e627} 
\index{main.c@{main.c}!main@{main}}
\index{main@{main}!main.c@{main.c}}
\doxysubsubsection{\texorpdfstring{main()}{main()}}
{\footnotesize\ttfamily int main (\begin{DoxyParamCaption}\item[{int}]{argc,  }\item[{char \texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*}}]{argv }\end{DoxyParamCaption})}



gem-\/graph-\/client \doxylink{main_8c_a3c04138a5bfe5d72780bb7e82a18e627}{main()} 

\begin{DoxyDate}{Date}
2024-\/04 
\end{DoxyDate}
\begin{DoxyAuthor}{Author}
Jean
\end{DoxyAuthor}
\begin{DoxySeeAlso}{See also}
src/fsm/dispatch 

src/signal

(none)
\end{DoxySeeAlso}

\begin{DoxyParams}{Parameters}
{\em argc} & \\
\hline
{\em \texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*}argv} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
status 
\end{DoxyReturn}
