\hypertarget{classStateMachine}{\section{\-State\-Machine$<$ entity\-\_\-type $>$ \-Class \-Template \-Reference}
\label{classStateMachine}\index{\-State\-Machine$<$ entity\-\_\-type $>$@{\-State\-Machine$<$ entity\-\_\-type $>$}}
}


{\ttfamily \#include $<$\-State\-Machine.\-h$>$}

\subsection*{\-Public \-Member \-Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classStateMachine_af2b7a132255e3583a20fb4712ed3d4bc}{\-State\-Machine} (entity\-\_\-type $\ast$owner)
\item 
virtual \hyperlink{classStateMachine_aeb736dccb71878743b8422133bdca45a}{$\sim$\-State\-Machine} ()
\item 
void \hyperlink{classStateMachine_ab84f821b25a987948375a139fc2c143e}{\-Set\-Current\-State} (\hyperlink{classState}{\-State}$<$ entity\-\_\-type $>$ $\ast$s)
\item 
void \hyperlink{classStateMachine_a8f001ebb9b17127af987700d3a1cf336}{\-Set\-Global\-State} (\hyperlink{classState}{\-State}$<$ entity\-\_\-type $>$ $\ast$s)
\item 
void \hyperlink{classStateMachine_a2162d76fc28fde3082c8360822d95661}{\-Set\-Previous\-State} (\hyperlink{classState}{\-State}$<$ entity\-\_\-type $>$ $\ast$s)
\item 
void \hyperlink{classStateMachine_a24b1f38171537058ab8040b3b42adb6c}{\-Update} () const 
\item 
void \hyperlink{classStateMachine_a3b24092cc2cd2b8bc5fb04b974b97d30}{\-Change\-State} (\hyperlink{classState}{\-State}$<$ entity\-\_\-type $>$ $\ast$p\-New\-State)
\item 
void \hyperlink{classStateMachine_a4758f9449ecb6504c0a9a6946fa73953}{\-Revert\-To\-Previous\-State} ()
\item 
bool \hyperlink{classStateMachine_a1ad79d73ef0a8cd7d7034acd412d7133}{is\-In\-State} (const \hyperlink{classState}{\-State}$<$ entity\-\_\-type $>$ \&st) const 
\item 
\hyperlink{classState}{\-State}$<$ entity\-\_\-type $>$ $\ast$ \hyperlink{classStateMachine_a105325f314158560d5d6fc503f8d3794}{\-Get\-Current\-State} () const 
\item 
\hyperlink{classState}{\-State}$<$ entity\-\_\-type $>$ $\ast$ \hyperlink{classStateMachine_a5cd344fa00e1e34de099fb8a6b48143a}{\-Get\-Global\-State} () const 
\item 
\hyperlink{classState}{\-State}$<$ entity\-\_\-type $>$ $\ast$ \hyperlink{classStateMachine_aacf68e0cc6008622dec5631add6f92fe}{\-Get\-Previous\-State} () const 
\end{DoxyCompactItemize}
\subsubsection*{template$<$class entity\-\_\-type$>$ class State\-Machine$<$ entity\-\_\-type $>$}



\subsection{\-Constructor \& \-Destructor \-Documentation}
\hypertarget{classStateMachine_af2b7a132255e3583a20fb4712ed3d4bc}{\index{\-State\-Machine@{\-State\-Machine}!\-State\-Machine@{\-State\-Machine}}
\index{\-State\-Machine@{\-State\-Machine}!StateMachine@{\-State\-Machine}}
\subsubsection[{\-State\-Machine}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class entity\-\_\-type$>$ {\bf \-State\-Machine}$<$ entity\-\_\-type $>$\-::{\bf \-State\-Machine} (
\begin{DoxyParamCaption}
\item[{entity\-\_\-type $\ast$}]{owner}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}\label{classStateMachine_af2b7a132255e3583a20fb4712ed3d4bc}
\hypertarget{classStateMachine_aeb736dccb71878743b8422133bdca45a}{\index{\-State\-Machine@{\-State\-Machine}!$\sim$\-State\-Machine@{$\sim$\-State\-Machine}}
\index{$\sim$\-State\-Machine@{$\sim$\-State\-Machine}!StateMachine@{\-State\-Machine}}
\subsubsection[{$\sim$\-State\-Machine}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class entity\-\_\-type$>$ virtual {\bf \-State\-Machine}$<$ entity\-\_\-type $>$\-::$\sim${\bf \-State\-Machine} (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline, virtual\mbox{]}}}}\label{classStateMachine_aeb736dccb71878743b8422133bdca45a}


\subsection{\-Member \-Function \-Documentation}
\hypertarget{classStateMachine_a3b24092cc2cd2b8bc5fb04b974b97d30}{\index{\-State\-Machine@{\-State\-Machine}!\-Change\-State@{\-Change\-State}}
\index{\-Change\-State@{\-Change\-State}!StateMachine@{\-State\-Machine}}
\subsubsection[{\-Change\-State}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class entity\-\_\-type$>$ void {\bf \-State\-Machine}$<$ entity\-\_\-type $>$\-::{\bf \-Change\-State} (
\begin{DoxyParamCaption}
\item[{{\bf \-State}$<$ entity\-\_\-type $>$ $\ast$}]{p\-New\-State}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}\label{classStateMachine_a3b24092cc2cd2b8bc5fb04b974b97d30}


\-Here is the caller graph for this function\-:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classStateMachine_a3b24092cc2cd2b8bc5fb04b974b97d30_icgraph}
\end{center}
\end{figure}


\hypertarget{classStateMachine_a105325f314158560d5d6fc503f8d3794}{\index{\-State\-Machine@{\-State\-Machine}!\-Get\-Current\-State@{\-Get\-Current\-State}}
\index{\-Get\-Current\-State@{\-Get\-Current\-State}!StateMachine@{\-State\-Machine}}
\subsubsection[{\-Get\-Current\-State}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class entity\-\_\-type$>$ {\bf \-State}$<$entity\-\_\-type$>$$\ast$ {\bf \-State\-Machine}$<$ entity\-\_\-type $>$\-::{\bf \-Get\-Current\-State} (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}\label{classStateMachine_a105325f314158560d5d6fc503f8d3794}
\hypertarget{classStateMachine_a5cd344fa00e1e34de099fb8a6b48143a}{\index{\-State\-Machine@{\-State\-Machine}!\-Get\-Global\-State@{\-Get\-Global\-State}}
\index{\-Get\-Global\-State@{\-Get\-Global\-State}!StateMachine@{\-State\-Machine}}
\subsubsection[{\-Get\-Global\-State}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class entity\-\_\-type$>$ {\bf \-State}$<$entity\-\_\-type$>$$\ast$ {\bf \-State\-Machine}$<$ entity\-\_\-type $>$\-::{\bf \-Get\-Global\-State} (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}\label{classStateMachine_a5cd344fa00e1e34de099fb8a6b48143a}
\hypertarget{classStateMachine_aacf68e0cc6008622dec5631add6f92fe}{\index{\-State\-Machine@{\-State\-Machine}!\-Get\-Previous\-State@{\-Get\-Previous\-State}}
\index{\-Get\-Previous\-State@{\-Get\-Previous\-State}!StateMachine@{\-State\-Machine}}
\subsubsection[{\-Get\-Previous\-State}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class entity\-\_\-type$>$ {\bf \-State}$<$entity\-\_\-type$>$$\ast$ {\bf \-State\-Machine}$<$ entity\-\_\-type $>$\-::{\bf \-Get\-Previous\-State} (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}\label{classStateMachine_aacf68e0cc6008622dec5631add6f92fe}
\hypertarget{classStateMachine_a1ad79d73ef0a8cd7d7034acd412d7133}{\index{\-State\-Machine@{\-State\-Machine}!is\-In\-State@{is\-In\-State}}
\index{is\-In\-State@{is\-In\-State}!StateMachine@{\-State\-Machine}}
\subsubsection[{is\-In\-State}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class entity\-\_\-type$>$ bool {\bf \-State\-Machine}$<$ entity\-\_\-type $>$\-::{\bf is\-In\-State} (
\begin{DoxyParamCaption}
\item[{const {\bf \-State}$<$ entity\-\_\-type $>$ \&}]{st}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}\label{classStateMachine_a1ad79d73ef0a8cd7d7034acd412d7133}
\hypertarget{classStateMachine_a4758f9449ecb6504c0a9a6946fa73953}{\index{\-State\-Machine@{\-State\-Machine}!\-Revert\-To\-Previous\-State@{\-Revert\-To\-Previous\-State}}
\index{\-Revert\-To\-Previous\-State@{\-Revert\-To\-Previous\-State}!StateMachine@{\-State\-Machine}}
\subsubsection[{\-Revert\-To\-Previous\-State}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class entity\-\_\-type$>$ void {\bf \-State\-Machine}$<$ entity\-\_\-type $>$\-::{\bf \-Revert\-To\-Previous\-State} (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}\label{classStateMachine_a4758f9449ecb6504c0a9a6946fa73953}
\hypertarget{classStateMachine_ab84f821b25a987948375a139fc2c143e}{\index{\-State\-Machine@{\-State\-Machine}!\-Set\-Current\-State@{\-Set\-Current\-State}}
\index{\-Set\-Current\-State@{\-Set\-Current\-State}!StateMachine@{\-State\-Machine}}
\subsubsection[{\-Set\-Current\-State}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class entity\-\_\-type$>$ void {\bf \-State\-Machine}$<$ entity\-\_\-type $>$\-::{\bf \-Set\-Current\-State} (
\begin{DoxyParamCaption}
\item[{{\bf \-State}$<$ entity\-\_\-type $>$ $\ast$}]{s}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}\label{classStateMachine_ab84f821b25a987948375a139fc2c143e}
\hypertarget{classStateMachine_a8f001ebb9b17127af987700d3a1cf336}{\index{\-State\-Machine@{\-State\-Machine}!\-Set\-Global\-State@{\-Set\-Global\-State}}
\index{\-Set\-Global\-State@{\-Set\-Global\-State}!StateMachine@{\-State\-Machine}}
\subsubsection[{\-Set\-Global\-State}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class entity\-\_\-type$>$ void {\bf \-State\-Machine}$<$ entity\-\_\-type $>$\-::{\bf \-Set\-Global\-State} (
\begin{DoxyParamCaption}
\item[{{\bf \-State}$<$ entity\-\_\-type $>$ $\ast$}]{s}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}\label{classStateMachine_a8f001ebb9b17127af987700d3a1cf336}
\hypertarget{classStateMachine_a2162d76fc28fde3082c8360822d95661}{\index{\-State\-Machine@{\-State\-Machine}!\-Set\-Previous\-State@{\-Set\-Previous\-State}}
\index{\-Set\-Previous\-State@{\-Set\-Previous\-State}!StateMachine@{\-State\-Machine}}
\subsubsection[{\-Set\-Previous\-State}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class entity\-\_\-type$>$ void {\bf \-State\-Machine}$<$ entity\-\_\-type $>$\-::{\bf \-Set\-Previous\-State} (
\begin{DoxyParamCaption}
\item[{{\bf \-State}$<$ entity\-\_\-type $>$ $\ast$}]{s}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}\label{classStateMachine_a2162d76fc28fde3082c8360822d95661}
\hypertarget{classStateMachine_a24b1f38171537058ab8040b3b42adb6c}{\index{\-State\-Machine@{\-State\-Machine}!\-Update@{\-Update}}
\index{\-Update@{\-Update}!StateMachine@{\-State\-Machine}}
\subsubsection[{\-Update}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class entity\-\_\-type$>$ void {\bf \-State\-Machine}$<$ entity\-\_\-type $>$\-::{\bf \-Update} (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}\label{classStateMachine_a24b1f38171537058ab8040b3b42adb6c}


\-The documentation for this class was generated from the following file\-:\begin{DoxyCompactItemize}
\item 
\-Example\-A\-I\-Module/\-Source/\hyperlink{StateMachine_8h}{\-State\-Machine.\-h}\end{DoxyCompactItemize}
