\hypertarget{class_simple_hsm_1_1_simple_hsm}{
\section{SimpleHsm::SimpleHsm Class Reference}
\label{class_simple_hsm_1_1_simple_hsm}\index{SimpleHsm::SimpleHsm@{SimpleHsm::SimpleHsm}}
}
Inheritance diagram for SimpleHsm::SimpleHsm::\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2cm]{class_simple_hsm_1_1_simple_hsm}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{CompactItemize}
\item 
void \hyperlink{class_simple_hsm_1_1_simple_hsm_1c476b28796577cf679018e74187ec23}{SignalCurrentState} (\hyperlink{class_simple_hsm_1_1_state_event}{StateEvent} e)
\end{CompactItemize}
\subsection*{Protected Member Functions}
\begin{CompactItemize}
\item 
void \hyperlink{class_simple_hsm_1_1_simple_hsm_6b7a4875b972bbcacd7c874ad2f10646}{Initialize} (StateDelegate topState)
\item 
Boolean \hyperlink{class_simple_hsm_1_1_simple_hsm_63e78e6af37062dc56d370b4838aec4f}{IsParent} (StateDelegate parentState, StateDelegate childState)
\item 
bool \hyperlink{class_simple_hsm_1_1_simple_hsm_7c0e62aeaff47bfb030135dad4ca9ea2}{HasDeepHistAttrib} (StateDelegate state)
\item 
void \hyperlink{class_simple_hsm_1_1_simple_hsm_ed2715b1aa8b0f72d5d25b7098c1e8ee}{TransitionState} (StateDelegate newState, bool toDeepHist)
\item 
void \hyperlink{class_simple_hsm_1_1_simple_hsm_a4218310d487a2c6a40d28e4fb6eae22}{TransitionState} (StateDelegate newState)
\item 
void \hyperlink{class_simple_hsm_1_1_simple_hsm_6a7b36da2230747af4bdd31fed0409ed}{InitTransitionState} (StateDelegate newState)
\item 
Boolean \hyperlink{class_simple_hsm_1_1_simple_hsm_6299b4f1332ab29ffda9881734f6db7b}{IsInState} (StateDelegate state)
\end{CompactItemize}


\subsection{Detailed Description}
\hyperlink{class_simple_hsm_1_1_simple_hsm}{SimpleHsm} class

The basic state machine implementation. This class should be subclassed to create a state machine. 

\subsection{Member Function Documentation}
\hypertarget{class_simple_hsm_1_1_simple_hsm_7c0e62aeaff47bfb030135dad4ca9ea2}{
\index{SimpleHsm::SimpleHsm@{SimpleHsm::SimpleHsm}!HasDeepHistAttrib@{HasDeepHistAttrib}}
\index{HasDeepHistAttrib@{HasDeepHistAttrib}!SimpleHsm::SimpleHsm@{SimpleHsm::SimpleHsm}}
\subsubsection[{HasDeepHistAttrib}]{\setlength{\rightskip}{0pt plus 5cm}bool SimpleHsm::SimpleHsm::HasDeepHistAttrib (StateDelegate {\em state})\hspace{0.3cm}{\tt  \mbox{[}inline, protected\mbox{]}}}}
\label{class_simple_hsm_1_1_simple_hsm_7c0e62aeaff47bfb030135dad4ca9ea2}


Check if a state delegates method has the \hyperlink{class_simple_hsm_1_1_deep_history}{DeepHistory} attribute

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em state}]The state to check \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]True if the method refered to by the delegate has the \hyperlink{class_simple_hsm_1_1_deep_history}{DeepHistory} attribute \end{Desc}
\hypertarget{class_simple_hsm_1_1_simple_hsm_6b7a4875b972bbcacd7c874ad2f10646}{
\index{SimpleHsm::SimpleHsm@{SimpleHsm::SimpleHsm}!Initialize@{Initialize}}
\index{Initialize@{Initialize}!SimpleHsm::SimpleHsm@{SimpleHsm::SimpleHsm}}
\subsubsection[{Initialize}]{\setlength{\rightskip}{0pt plus 5cm}void SimpleHsm::SimpleHsm::Initialize (StateDelegate {\em topState})\hspace{0.3cm}{\tt  \mbox{[}inline, protected\mbox{]}}}}
\label{class_simple_hsm_1_1_simple_hsm_6b7a4875b972bbcacd7c874ad2f10646}


Initialise a simplehsm state machine.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em topState}]The topmost (and initial) state of the hierarchy \end{description}
\end{Desc}
\hypertarget{class_simple_hsm_1_1_simple_hsm_6a7b36da2230747af4bdd31fed0409ed}{
\index{SimpleHsm::SimpleHsm@{SimpleHsm::SimpleHsm}!InitTransitionState@{InitTransitionState}}
\index{InitTransitionState@{InitTransitionState}!SimpleHsm::SimpleHsm@{SimpleHsm::SimpleHsm}}
\subsubsection[{InitTransitionState}]{\setlength{\rightskip}{0pt plus 5cm}void SimpleHsm::SimpleHsm::InitTransitionState (StateDelegate {\em newState})\hspace{0.3cm}{\tt  \mbox{[}inline, protected\mbox{]}}}}
\label{class_simple_hsm_1_1_simple_hsm_6a7b36da2230747af4bdd31fed0409ed}


Initiate an initial transition to a new state (this function should only be used from a SimpleHsm::Signal::Init state event).

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em newState}]The state to transition to \end{description}
\end{Desc}
\hypertarget{class_simple_hsm_1_1_simple_hsm_6299b4f1332ab29ffda9881734f6db7b}{
\index{SimpleHsm::SimpleHsm@{SimpleHsm::SimpleHsm}!IsInState@{IsInState}}
\index{IsInState@{IsInState}!SimpleHsm::SimpleHsm@{SimpleHsm::SimpleHsm}}
\subsubsection[{IsInState}]{\setlength{\rightskip}{0pt plus 5cm}Boolean SimpleHsm::SimpleHsm::IsInState (StateDelegate {\em state})\hspace{0.3cm}{\tt  \mbox{[}inline, protected\mbox{]}}}}
\label{class_simple_hsm_1_1_simple_hsm_6299b4f1332ab29ffda9881734f6db7b}


Check if a state machine is currently in a certain state.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em state}]The state to check \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]True if the state machine is currently in the specified state \end{Desc}
\hypertarget{class_simple_hsm_1_1_simple_hsm_63e78e6af37062dc56d370b4838aec4f}{
\index{SimpleHsm::SimpleHsm@{SimpleHsm::SimpleHsm}!IsParent@{IsParent}}
\index{IsParent@{IsParent}!SimpleHsm::SimpleHsm@{SimpleHsm::SimpleHsm}}
\subsubsection[{IsParent}]{\setlength{\rightskip}{0pt plus 5cm}Boolean SimpleHsm::SimpleHsm::IsParent (StateDelegate {\em parentState}, \/  StateDelegate {\em childState})\hspace{0.3cm}{\tt  \mbox{[}inline, protected\mbox{]}}}}
\label{class_simple_hsm_1_1_simple_hsm_63e78e6af37062dc56d370b4838aec4f}


Check is one state is the parent of another.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em parentState}]The parent state to check \item[{\em childState}]The child state to check \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]True if the parentState parameter is a parent to the childState parameter \end{Desc}
\hypertarget{class_simple_hsm_1_1_simple_hsm_1c476b28796577cf679018e74187ec23}{
\index{SimpleHsm::SimpleHsm@{SimpleHsm::SimpleHsm}!SignalCurrentState@{SignalCurrentState}}
\index{SignalCurrentState@{SignalCurrentState}!SimpleHsm::SimpleHsm@{SimpleHsm::SimpleHsm}}
\subsubsection[{SignalCurrentState}]{\setlength{\rightskip}{0pt plus 5cm}void SimpleHsm::SimpleHsm::SignalCurrentState ({\bf StateEvent} {\em e})\hspace{0.3cm}{\tt  \mbox{[}inline\mbox{]}}}}
\label{class_simple_hsm_1_1_simple_hsm_1c476b28796577cf679018e74187ec23}


Send a signal to the state machine.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em e}]The event to send to the state machine \end{description}
\end{Desc}
\hypertarget{class_simple_hsm_1_1_simple_hsm_a4218310d487a2c6a40d28e4fb6eae22}{
\index{SimpleHsm::SimpleHsm@{SimpleHsm::SimpleHsm}!TransitionState@{TransitionState}}
\index{TransitionState@{TransitionState}!SimpleHsm::SimpleHsm@{SimpleHsm::SimpleHsm}}
\subsubsection[{TransitionState}]{\setlength{\rightskip}{0pt plus 5cm}void SimpleHsm::SimpleHsm::TransitionState (StateDelegate {\em newState})\hspace{0.3cm}{\tt  \mbox{[}inline, protected\mbox{]}}}}
\label{class_simple_hsm_1_1_simple_hsm_a4218310d487a2c6a40d28e4fb6eae22}


Initiate a transition to a new state.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em newState}]The state to transition to \end{description}
\end{Desc}
\hypertarget{class_simple_hsm_1_1_simple_hsm_ed2715b1aa8b0f72d5d25b7098c1e8ee}{
\index{SimpleHsm::SimpleHsm@{SimpleHsm::SimpleHsm}!TransitionState@{TransitionState}}
\index{TransitionState@{TransitionState}!SimpleHsm::SimpleHsm@{SimpleHsm::SimpleHsm}}
\subsubsection[{TransitionState}]{\setlength{\rightskip}{0pt plus 5cm}void SimpleHsm::SimpleHsm::TransitionState (StateDelegate {\em newState}, \/  bool {\em toDeepHist})\hspace{0.3cm}{\tt  \mbox{[}inline, protected\mbox{]}}}}
\label{class_simple_hsm_1_1_simple_hsm_ed2715b1aa8b0f72d5d25b7098c1e8ee}


Initiate a transition to a new state.

This function will:\begin{itemize}
\item replace the target state with the deep history target if required\item store a deep history target state if exiting a composite state with a deep history child\item perform the exit/entry chain from the current state to the target state\end{itemize}


\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em newState}]The state to transition to \item[{\em toDeepHist}]Whether to transition to the states internal deep history psuedostate \end{description}
\end{Desc}


The documentation for this class was generated from the following file:\begin{CompactItemize}
\item 
SimpleHsm/\hyperlink{_simple_hsm_8cs}{SimpleHsm.cs}\end{CompactItemize}
