103 lines
7.3 KiB
TeX
103 lines
7.3 KiB
TeX
|
\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}
|