\doxysection{src/fsm/dispatch.c File Reference}
\hypertarget{fsm_2dispatch_8c}{}\label{fsm_2dispatch_8c}\index{src/fsm/dispatch.c@{src/fsm/dispatch.c}}


This Finite State Machine (fsm) describes all the possible states of the Gem-\/graph client and all the transitions between these states.  


{\ttfamily \#include $<$stdbool.\+h$>$}\newline
{\ttfamily \#include "{}../../include/fsm.\+h"{}}\newline
{\ttfamily \#include "{}../../include/util.\+h"{}}\newline
{\ttfamily \#include "{}../../include/widget.\+h"{}}\newline
\doxysubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
void \mbox{\hyperlink{fsm_2dispatch_8c_a435d1a5171a7d69662d701234722fee2}{fsm\+\_\+journal\+\_\+publication\+\_\+request}} ()
\item 
void \mbox{\hyperlink{fsm_2dispatch_8c_a8c67f42f95d48ee2469c9a27d65db3e6}{fsm\+\_\+journal\+\_\+event}} (int severity, int source, const char \texorpdfstring{$\ast$}{*}file\+\_\+source, const char \texorpdfstring{$\ast$}{*}function\+\_\+source, const char \texorpdfstring{$\ast$}{*}string\+\_\+value)
\item 
void \mbox{\hyperlink{fsm_2dispatch_8c_a8d91f5868f20ad3b72cfa63787d87444}{fsm\+\_\+init}} (char \texorpdfstring{$\ast$}{*}initial\+\_\+message\+\_\+from\+\_\+main)
\item 
void \mbox{\hyperlink{fsm_2dispatch_8c_a770bcaeb0bd6f81cddcc3cd506468fff}{fsm\+\_\+set\+\_\+preferences\+\_\+modified}} (bool value)
\item 
bool \mbox{\hyperlink{fsm_2dispatch_8c_a0b0231a311d0e85723ef9fcf38be88e3}{fsm\+\_\+get\+\_\+preferences\+\_\+state}} ()
\item 
\Hypertarget{fsm_2dispatch_8c_a9123915ffd10fe1ae18254898b1c0ebf}\label{fsm_2dispatch_8c_a9123915ffd10fe1ae18254898b1c0ebf} 
int {\bfseries fsm\+\_\+get\+\_\+exec\+\_\+edit} ()
\item 
\Hypertarget{fsm_2dispatch_8c_a90ab14081a88752d3721947a4922ee25}\label{fsm_2dispatch_8c_a90ab14081a88752d3721947a4922ee25} 
int {\bfseries fsm\+\_\+get\+\_\+state\+\_\+rules\+\_\+data} ()
\item 
void \mbox{\hyperlink{fsm_2dispatch_8c_ae921ecd39af67bb8dc0deb2cdc86125d}{fsm\+\_\+set\+\_\+exec\+\_\+edit}} (int choice)
\item 
void \mbox{\hyperlink{fsm_2dispatch_8c_af5a464b19589ba1972c9b3aa3397945a}{fsm\+\_\+set\+\_\+state\+\_\+rules\+\_\+data}} (int choice)
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
This Finite State Machine (fsm) describes all the possible states of the Gem-\/graph client and all the transitions between these states. 


\begin{DoxyItemize}
\item OOOOOOOOOOO OOOOO OOO OOO \texorpdfstring{$\ast$}{*} OO OO OO OOOO OOOO \texorpdfstring{$\ast$}{*} OO OO OO OO OO OO \texorpdfstring{$\ast$}{*} OOOOOO OO OO OO OO OO \texorpdfstring{$\ast$}{*} OO OO OO OOO OO \texorpdfstring{$\ast$}{*} OO OO OO OO \texorpdfstring{$\ast$}{*} OO OO OOO OO OO \texorpdfstring{$\ast$}{*} OO OOOOOO OO OO \texorpdfstring{$\ast$}{*}
\begin{DoxyItemize}
\item 
\end{DoxyItemize}
\end{DoxyItemize}

@detailed gem-\/graph-\/client fsm (Finite State Machine) manages the four topics\+:
\begin{DoxyItemize}
\item engine (window appearance)
\item measures (current measurements)
\item results (current data acquisition and displays)
\item preferences (current user preferences)

Each state of the finite state machine (fsm) must be
\begin{DoxyItemize}
\item saved at the end of a work session and
\item reread (available) at the start of a new session.
\end{DoxyItemize}

No state of the fsm should be defined in another module. No fsm transition needs to be executed in another module. 
\end{DoxyItemize}

\doxysubsection{Function Documentation}
\Hypertarget{fsm_2dispatch_8c_a0b0231a311d0e85723ef9fcf38be88e3}\label{fsm_2dispatch_8c_a0b0231a311d0e85723ef9fcf38be88e3} 
\index{dispatch.c@{dispatch.c}!fsm\_get\_preferences\_state@{fsm\_get\_preferences\_state}}
\index{fsm\_get\_preferences\_state@{fsm\_get\_preferences\_state}!dispatch.c@{dispatch.c}}
\doxysubsubsection{\texorpdfstring{fsm\_get\_preferences\_state()}{fsm\_get\_preferences\_state()}}
{\footnotesize\ttfamily bool fsm\+\_\+get\+\_\+preferences\+\_\+state (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}

phantom documentation used to test the functioning of doxygen \Hypertarget{fsm_2dispatch_8c_a8d91f5868f20ad3b72cfa63787d87444}\label{fsm_2dispatch_8c_a8d91f5868f20ad3b72cfa63787d87444} 
\index{dispatch.c@{dispatch.c}!fsm\_init@{fsm\_init}}
\index{fsm\_init@{fsm\_init}!dispatch.c@{dispatch.c}}
\doxysubsubsection{\texorpdfstring{fsm\_init()}{fsm\_init()}}
{\footnotesize\ttfamily void fsm\+\_\+init (\begin{DoxyParamCaption}\item[{char \texorpdfstring{$\ast$}{*}}]{initial\+\_\+message\+\_\+from\+\_\+main }\end{DoxyParamCaption})}

F S M I N I T \texorpdfstring{$\ast$}{*} phantom documentation used to test the functioning of doxygen \Hypertarget{fsm_2dispatch_8c_a8c67f42f95d48ee2469c9a27d65db3e6}\label{fsm_2dispatch_8c_a8c67f42f95d48ee2469c9a27d65db3e6} 
\index{dispatch.c@{dispatch.c}!fsm\_journal\_event@{fsm\_journal\_event}}
\index{fsm\_journal\_event@{fsm\_journal\_event}!dispatch.c@{dispatch.c}}
\doxysubsubsection{\texorpdfstring{fsm\_journal\_event()}{fsm\_journal\_event()}}
{\footnotesize\ttfamily void fsm\+\_\+journal\+\_\+event (\begin{DoxyParamCaption}\item[{int}]{severity,  }\item[{int}]{source,  }\item[{const char \texorpdfstring{$\ast$}{*}}]{file\+\_\+source,  }\item[{const char \texorpdfstring{$\ast$}{*}}]{function\+\_\+source,  }\item[{const char \texorpdfstring{$\ast$}{*}}]{string\+\_\+value }\end{DoxyParamCaption})}

phantom documentation used to test the functioning of doxygen \Hypertarget{fsm_2dispatch_8c_a435d1a5171a7d69662d701234722fee2}\label{fsm_2dispatch_8c_a435d1a5171a7d69662d701234722fee2} 
\index{dispatch.c@{dispatch.c}!fsm\_journal\_publication\_request@{fsm\_journal\_publication\_request}}
\index{fsm\_journal\_publication\_request@{fsm\_journal\_publication\_request}!dispatch.c@{dispatch.c}}
\doxysubsubsection{\texorpdfstring{fsm\_journal\_publication\_request()}{fsm\_journal\_publication\_request()}}
{\footnotesize\ttfamily void fsm\+\_\+journal\+\_\+publication\+\_\+request (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}

phantom documentation used to test the functioning of doxygen \Hypertarget{fsm_2dispatch_8c_ae921ecd39af67bb8dc0deb2cdc86125d}\label{fsm_2dispatch_8c_ae921ecd39af67bb8dc0deb2cdc86125d} 
\index{dispatch.c@{dispatch.c}!fsm\_set\_exec\_edit@{fsm\_set\_exec\_edit}}
\index{fsm\_set\_exec\_edit@{fsm\_set\_exec\_edit}!dispatch.c@{dispatch.c}}
\doxysubsubsection{\texorpdfstring{fsm\_set\_exec\_edit()}{fsm\_set\_exec\_edit()}}
{\footnotesize\ttfamily void fsm\+\_\+set\+\_\+exec\+\_\+edit (\begin{DoxyParamCaption}\item[{int}]{choice }\end{DoxyParamCaption})}

phantom documentation used to test the functioning of doxygen \Hypertarget{fsm_2dispatch_8c_a770bcaeb0bd6f81cddcc3cd506468fff}\label{fsm_2dispatch_8c_a770bcaeb0bd6f81cddcc3cd506468fff} 
\index{dispatch.c@{dispatch.c}!fsm\_set\_preferences\_modified@{fsm\_set\_preferences\_modified}}
\index{fsm\_set\_preferences\_modified@{fsm\_set\_preferences\_modified}!dispatch.c@{dispatch.c}}
\doxysubsubsection{\texorpdfstring{fsm\_set\_preferences\_modified()}{fsm\_set\_preferences\_modified()}}
{\footnotesize\ttfamily void fsm\+\_\+set\+\_\+preferences\+\_\+modified (\begin{DoxyParamCaption}\item[{bool}]{value }\end{DoxyParamCaption})}

phantom documentation used to test the functioning of doxygen \Hypertarget{fsm_2dispatch_8c_af5a464b19589ba1972c9b3aa3397945a}\label{fsm_2dispatch_8c_af5a464b19589ba1972c9b3aa3397945a} 
\index{dispatch.c@{dispatch.c}!fsm\_set\_state\_rules\_data@{fsm\_set\_state\_rules\_data}}
\index{fsm\_set\_state\_rules\_data@{fsm\_set\_state\_rules\_data}!dispatch.c@{dispatch.c}}
\doxysubsubsection{\texorpdfstring{fsm\_set\_state\_rules\_data()}{fsm\_set\_state\_rules\_data()}}
{\footnotesize\ttfamily void fsm\+\_\+set\+\_\+state\+\_\+rules\+\_\+data (\begin{DoxyParamCaption}\item[{int}]{choice }\end{DoxyParamCaption})}

phantom documentation used to test the functioning of doxygen 