\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}