\documentclass{article}
\usepackage{fullpage}
\usepackage{sverb}
\usepackage[usenames,dvipsnames]{color}
\usepackage[colour]{circus}
\usepackage{hijac}

\title{Simple Mission Application Model}

\author{Frank Zeyda}

\begin{document}

\maketitle

\tableofcontents

\newpage

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section{MainSafelet Class}

The \code{MainSafelet} class implements the \code{Safelet} interface and thus provides the safelet of the application.

\subsection{Java Code}

\verbinput{MainSafelet.java}

\subsection{Application Process}

The process for the \code{MainSafelet} Java class is presented below. We suffix the process name with $App$ to highlight that it is the behaviour of a particular application component that we model.

\begin{circusbox}
\input{MainSafeletApp.circus}
\end{circusbox}

\subsection{Composite Process}

\red{Conceptually, we might not want to hide the $SafeletMethChan$ channels at this point since this prevents other components from calling the underling methods.}

\begin{circusbox}
\input{MainSafelet.circus}
\end{circusbox}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section{MainMissionSequencer Class}

The \code{MainMissionSequencer} class extends the abstract \code{MissionSequencer} class and thus provides the mission sequencer of the application.

\subsection{Java Code}

\verbinput{MainMissionSequencer.java}

\subsection{Application Process}

The process for the \code{MainMissionSequencer} Java class is presented below.

\begin{circusbox}
\input{MainMissionSequencerApp.circus}
\end{circusbox}

\subsection{Composite Process}

\begin{circusbox}
\input{MainMissionSequencer.circus}
\end{circusbox}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section{MainMission Class}

The \code{MainMission} class extends the abstract \code{Mission} class and thus provides the mission of the application.

\subsection{Java Code}

\verbinput{MainMission.java}

\subsection{Application Process}

The process for the \code{MainMission} Java class is presented below.

\begin{circusbox}
\input{MainMissionApp.circus}
\end{circusbox}

\subsection{Composite Process}

\begin{circusbox}
\input{MainMission.circus}
\end{circusbox}

\section{MainHandler Class}

The \code{MainHandler} class extends the abstract \code{PeriodicEventHandler} class and thus provides the sole handler of the application.

\subsection{Java Code}

\verbinput{MainHandler.java}

\subsection{Method Channels}

\begin{circusbox}
\input{MainHandlerMethChan.circus}
\end{circusbox}

\end{document}
