\hypertarget{classcore_1_1_service}{}\section{core\+:\+:Service Class Reference}
\label{classcore_1_1_service}\index{core\+::\+Service@{core\+::\+Service}}


{\ttfamily \#include $<$Service.\+h$>$}



Inheritance diagram for core\+:\+:Service\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=300pt]{classcore_1_1_service__inherit__graph}
\end{center}
\end{figure}


Collaboration diagram for core\+:\+:Service\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=241pt]{classcore_1_1_service__coll__graph}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classcore_1_1_service_a52f1c7c5fe2357fc21b9ff512e87cf64}{Service} ()
\item 
\mbox{\Hypertarget{classcore_1_1_service_a26600d90900798a73e564539f6cd4dff}\label{classcore_1_1_service_a26600d90900798a73e564539f6cd4dff}} 
void {\bfseries remove\+From\+Session\+List} (\hyperlink{classcore_1_1_session}{Session} $\ast$session)
\item 
\mbox{\Hypertarget{classcore_1_1_service_a94fffcdecb61d015f9d8eb8f9a36dcb8}\label{classcore_1_1_service_a94fffcdecb61d015f9d8eb8f9a36dcb8}} 
virtual void {\bfseries session\+Error\+Handler} (std\+::string error\+String, \hyperlink{classcore_1_1_session}{Session} $\ast$session)
\item 
virtual \hyperlink{classcore_1_1_session}{Session} $\ast$ \hyperlink{classcore_1_1_service_aeeb0ef12a87998f5fc429b22ffb233da}{get\+Socket\+Accept} (\hyperlink{classcore_1_1_e_poll}{E\+Poll} \&epoll)
\item 
\mbox{\Hypertarget{classcore_1_1_service_abb28d7ff0f12109e582e6b9adf37f833}\label{classcore_1_1_service_abb28d7ff0f12109e582e6b9adf37f833}} 
void \hyperlink{classcore_1_1_service_abb28d7ff0f12109e582e6b9adf37f833}{output} (\hyperlink{classcore_1_1_session}{Session} $\ast$session) override
\begin{DoxyCompactList}\small\item\em Output the consoles array to the console. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Public Attributes}
\begin{DoxyCompactItemize}
\item 
std\+::vector$<$ \hyperlink{classcore_1_1_session}{Session} $\ast$ $>$ \hyperlink{classcore_1_1_service_acf2b5cb5da96a7b7478555e477f269a1}{sessions}
\item 
\hyperlink{classcore_1_1_command_list}{Command\+List} \hyperlink{classcore_1_1_service_a09bbcbc7512240b24b51131b6e1f9366}{commands}
\end{DoxyCompactItemize}


\subsection{Detailed Description}
\hyperlink{classcore_1_1_service}{Service}

The \hyperlink{classcore_1_1_service}{Service} object is instantiated as a single object upon construction of the parent \hyperlink{classcore_1_1_t_c_p_server_socket}{T\+C\+P\+Server\+Socket} and is provided as a parameter whenever a new \hyperlink{classcore_1_1_session}{Session} object is created. It provides server level services to \hyperlink{classcore_1_1_command}{Command} handlers as well as determining the behavior of the socket. 

\subsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{classcore_1_1_service_a52f1c7c5fe2357fc21b9ff512e87cf64}\label{classcore_1_1_service_a52f1c7c5fe2357fc21b9ff512e87cf64}} 
\index{core\+::\+Service@{core\+::\+Service}!Service@{Service}}
\index{Service@{Service}!core\+::\+Service@{core\+::\+Service}}
\subsubsection{\texorpdfstring{Service()}{Service()}}
{\footnotesize\ttfamily core\+::\+Service\+::\+Service (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}

Use this constructor to create a new \hyperlink{classcore_1_1_service}{Service} object.


\begin{DoxyParams}{Parameters}
{\em server} & A reference to the parent server creating the object. \\
\hline
\end{DoxyParams}


\subsection{Member Function Documentation}
\mbox{\Hypertarget{classcore_1_1_service_aeeb0ef12a87998f5fc429b22ffb233da}\label{classcore_1_1_service_aeeb0ef12a87998f5fc429b22ffb233da}} 
\index{core\+::\+Service@{core\+::\+Service}!get\+Socket\+Accept@{get\+Socket\+Accept}}
\index{get\+Socket\+Accept@{get\+Socket\+Accept}!core\+::\+Service@{core\+::\+Service}}
\subsubsection{\texorpdfstring{get\+Socket\+Accept()}{getSocketAccept()}}
{\footnotesize\ttfamily \hyperlink{classcore_1_1_session}{Session} $\ast$ core\+::\+Service\+::get\+Socket\+Accept (\begin{DoxyParamCaption}\item[{\hyperlink{classcore_1_1_e_poll}{E\+Poll} \&}]{epoll }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}

get\+Socket\+Accept is designed to allow a polymorphic extension of this object to return a type of object that extends the definition of the server socket. Returning the appropriate session object that extends from \hyperlink{classcore_1_1_session}{Session} provides the mechanism where the server can select the protocol dialog for the desired service. 

Reimplemented in \hyperlink{classcore_1_1_console_service_a635816dc132cc76e019321e32095d56d}{core\+::\+Console\+Service}.



\subsection{Member Data Documentation}
\mbox{\Hypertarget{classcore_1_1_service_a09bbcbc7512240b24b51131b6e1f9366}\label{classcore_1_1_service_a09bbcbc7512240b24b51131b6e1f9366}} 
\index{core\+::\+Service@{core\+::\+Service}!commands@{commands}}
\index{commands@{commands}!core\+::\+Service@{core\+::\+Service}}
\subsubsection{\texorpdfstring{commands}{commands}}
{\footnotesize\ttfamily \hyperlink{classcore_1_1_command_list}{Command\+List} core\+::\+Service\+::commands}

The commands object is a \hyperlink{classcore_1_1_command_list}{Command\+List} and is used to store \hyperlink{classcore_1_1_command}{Command} objects to be parsed and run as data comes into the session. \mbox{\Hypertarget{classcore_1_1_service_acf2b5cb5da96a7b7478555e477f269a1}\label{classcore_1_1_service_acf2b5cb5da96a7b7478555e477f269a1}} 
\index{core\+::\+Service@{core\+::\+Service}!sessions@{sessions}}
\index{sessions@{sessions}!core\+::\+Service@{core\+::\+Service}}
\subsubsection{\texorpdfstring{sessions}{sessions}}
{\footnotesize\ttfamily std\+::vector$<$\hyperlink{classcore_1_1_session}{Session} $\ast$$>$ core\+::\+Service\+::sessions}

The list of sessions that are currently open and being maintained by this object. 

The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
/home/bradarant/barant/\+Server\+Core/Service.\+h\item 
/home/bradarant/barant/\+Server\+Core/Service.\+cpp\end{DoxyCompactItemize}
