\doxysection{Algo Class Reference}
\hypertarget{classAlgo}{}\label{classAlgo}\index{Algo@{Algo}}


{\ttfamily \#include $<$Algo.\+hh$>$}



Collaboration diagram for Algo\+:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=550pt]{classAlgo__coll__graph}
\end{center}
\end{figure}
\doxysubsubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{classAlgo_aaf4f951979fc60411ed84c558f081867}{Algo}} ()
\item 
void \mbox{\hyperlink{classAlgo_ac8b70d722d4b2c1ad5cad4a63c3b7c62}{initialize}} ()
\item 
void \mbox{\hyperlink{classAlgo_ac223b246cd2f8851c4e0893ff41547fa}{generate\+\_\+orders}} ()
\item 
void \mbox{\hyperlink{classAlgo_a8fcaaeaa5ad212a126490a19370c9b7e}{process}} ()
\item 
void \mbox{\hyperlink{classAlgo_ac556564d232b2d90cec73718538ec804}{send}} (trading\+::\+Order \&)
\item 
bool \mbox{\hyperlink{classAlgo_a6fef1866e14e8a08788cb1d54afcedaf}{initialized}} ()
\item 
void \mbox{\hyperlink{classAlgo_a330f03f9df9e5d1e2b701bc3f5e94524}{stop}} ()
\end{DoxyCompactItemize}
\doxysubsubsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
std\+::queue$<$ trading\+::\+Order $>$ \mbox{\hyperlink{classAlgo_a889e1362976e78c4904007ee5edfd3fe}{\+\_\+orders}}
\item 
std\+::atomic$<$ bool $>$ \mbox{\hyperlink{classAlgo_a6cffb1f6d087978eba685bcb1d06b11d}{\+\_\+initialized}} \{false\}
\item 
std\+::atomic$<$ bool $>$ \mbox{\hyperlink{classAlgo_a3ce5d714379ab5094b6d82b99421b4a3}{\+\_\+running}} \{false\}
\item 
std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classPublisher}{Publisher}} $>$ \mbox{\hyperlink{classAlgo_af5bcfa2719e948826f71983a18ec017d}{\+\_\+pub}}
\item 
\mbox{\hyperlink{classutils_1_1ThreadSafeQueue}{utils\+::\+Thread\+Safe\+Queue}}$<$ trading\+::\+Order $>$ \mbox{\hyperlink{classAlgo_ac4f2da176cc2dc9ba757140a635fe9b8}{\+\_\+order\+\_\+queue}}
\item 
\mbox{\hyperlink{classutils_1_1ThreadPool}{utils\+::\+Thread\+Pool}} \mbox{\hyperlink{classAlgo_adb85594bf1d2e7c9357d353b5e97787d}{\+\_\+thread\+\_\+pool}}
\item 
std\+::mutex \mbox{\hyperlink{classAlgo_a4943cab875d5261b0abec360b68878e8}{\+\_\+send\+\_\+mutex}}
\item 
std\+::jthread \mbox{\hyperlink{classAlgo_a743ddc60baad0afa7f036a529c340460}{\+\_\+reader\+\_\+thread}}
\item 
std\+::vector$<$ std\+::jthread $>$ \mbox{\hyperlink{classAlgo_ac72ec5a778fce0be42ebf635f2c504d0}{\+\_\+worker\+\_\+threads}}
\item 
std\+::vector$<$ std\+::future$<$ bool $>$ $>$ \mbox{\hyperlink{classAlgo_a671449864b2d1a1af9a57970eb104a0f}{\+\_\+futures}}
\end{DoxyCompactItemize}


\doxysubsection{Constructor \& Destructor Documentation}
\Hypertarget{classAlgo_aaf4f951979fc60411ed84c558f081867}\index{Algo@{Algo}!Algo@{Algo}}
\index{Algo@{Algo}!Algo@{Algo}}
\doxysubsubsection{\texorpdfstring{Algo()}{Algo()}}
{\footnotesize\ttfamily \label{classAlgo_aaf4f951979fc60411ed84c558f081867} 
Algo\+::\+Algo (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})}



\doxysubsection{Member Function Documentation}
\Hypertarget{classAlgo_ac223b246cd2f8851c4e0893ff41547fa}\index{Algo@{Algo}!generate\_orders@{generate\_orders}}
\index{generate\_orders@{generate\_orders}!Algo@{Algo}}
\doxysubsubsection{\texorpdfstring{generate\_orders()}{generate\_orders()}}
{\footnotesize\ttfamily \label{classAlgo_ac223b246cd2f8851c4e0893ff41547fa} 
void Algo\+::generate\+\_\+orders (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})}



References \mbox{\hyperlink{classAlgo_a889e1362976e78c4904007ee5edfd3fe}{\+\_\+orders}}, and \mbox{\hyperlink{namespacereaders_1_1json_a05735378dfc87c287094d7aa33ac8209}{readers\+::json\+::read\+\_\+orders\+\_\+from\+\_\+json()}}.

Here is the call graph for this function\+:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=346pt]{classAlgo_ac223b246cd2f8851c4e0893ff41547fa_cgraph}
\end{center}
\end{figure}
\Hypertarget{classAlgo_ac8b70d722d4b2c1ad5cad4a63c3b7c62}\index{Algo@{Algo}!initialize@{initialize}}
\index{initialize@{initialize}!Algo@{Algo}}
\doxysubsubsection{\texorpdfstring{initialize()}{initialize()}}
{\footnotesize\ttfamily \label{classAlgo_ac8b70d722d4b2c1ad5cad4a63c3b7c62} 
void Algo\+::initialize (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})}



References \mbox{\hyperlink{classAlgo_a6cffb1f6d087978eba685bcb1d06b11d}{\+\_\+initialized}}, and \mbox{\hyperlink{classAlgo_af5bcfa2719e948826f71983a18ec017d}{\+\_\+pub}}.

\Hypertarget{classAlgo_a6fef1866e14e8a08788cb1d54afcedaf}\index{Algo@{Algo}!initialized@{initialized}}
\index{initialized@{initialized}!Algo@{Algo}}
\doxysubsubsection{\texorpdfstring{initialized()}{initialized()}}
{\footnotesize\ttfamily \label{classAlgo_a6fef1866e14e8a08788cb1d54afcedaf} 
bool Algo\+::initialized (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})}



References \mbox{\hyperlink{classAlgo_a6cffb1f6d087978eba685bcb1d06b11d}{\+\_\+initialized}}.

\Hypertarget{classAlgo_a8fcaaeaa5ad212a126490a19370c9b7e}\index{Algo@{Algo}!process@{process}}
\index{process@{process}!Algo@{Algo}}
\doxysubsubsection{\texorpdfstring{process()}{process()}}
{\footnotesize\ttfamily \label{classAlgo_a8fcaaeaa5ad212a126490a19370c9b7e} 
void Algo\+::process (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})}



References \mbox{\hyperlink{classAlgo_a671449864b2d1a1af9a57970eb104a0f}{\+\_\+futures}}, \mbox{\hyperlink{classAlgo_ac4f2da176cc2dc9ba757140a635fe9b8}{\+\_\+order\+\_\+queue}}, \mbox{\hyperlink{classAlgo_af5bcfa2719e948826f71983a18ec017d}{\+\_\+pub}}, \mbox{\hyperlink{classAlgo_a743ddc60baad0afa7f036a529c340460}{\+\_\+reader\+\_\+thread}}, \mbox{\hyperlink{classAlgo_a4943cab875d5261b0abec360b68878e8}{\+\_\+send\+\_\+mutex}}, \mbox{\hyperlink{classAlgo_adb85594bf1d2e7c9357d353b5e97787d}{\+\_\+thread\+\_\+pool}}, \mbox{\hyperlink{classAlgo_ac72ec5a778fce0be42ebf635f2c504d0}{\+\_\+worker\+\_\+threads}}, and \mbox{\hyperlink{namespacereaders_1_1json_a05735378dfc87c287094d7aa33ac8209}{readers\+::json\+::read\+\_\+orders\+\_\+from\+\_\+json()}}.

Here is the call graph for this function\+:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=304pt]{classAlgo_a8fcaaeaa5ad212a126490a19370c9b7e_cgraph}
\end{center}
\end{figure}
\Hypertarget{classAlgo_ac556564d232b2d90cec73718538ec804}\index{Algo@{Algo}!send@{send}}
\index{send@{send}!Algo@{Algo}}
\doxysubsubsection{\texorpdfstring{send()}{send()}}
{\footnotesize\ttfamily \label{classAlgo_ac556564d232b2d90cec73718538ec804} 
void Algo\+::send (\begin{DoxyParamCaption}\item[{trading\+::\+Order \&}]{order}{}\end{DoxyParamCaption})}



References \mbox{\hyperlink{classAlgo_af5bcfa2719e948826f71983a18ec017d}{\+\_\+pub}}.

\Hypertarget{classAlgo_a330f03f9df9e5d1e2b701bc3f5e94524}\index{Algo@{Algo}!stop@{stop}}
\index{stop@{stop}!Algo@{Algo}}
\doxysubsubsection{\texorpdfstring{stop()}{stop()}}
{\footnotesize\ttfamily \label{classAlgo_a330f03f9df9e5d1e2b701bc3f5e94524} 
void Algo\+::stop (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})}



References \mbox{\hyperlink{classAlgo_a671449864b2d1a1af9a57970eb104a0f}{\+\_\+futures}}, \mbox{\hyperlink{classAlgo_a743ddc60baad0afa7f036a529c340460}{\+\_\+reader\+\_\+thread}}, and \mbox{\hyperlink{classAlgo_ac72ec5a778fce0be42ebf635f2c504d0}{\+\_\+worker\+\_\+threads}}.



\doxysubsection{Member Data Documentation}
\Hypertarget{classAlgo_a671449864b2d1a1af9a57970eb104a0f}\index{Algo@{Algo}!\_futures@{\_futures}}
\index{\_futures@{\_futures}!Algo@{Algo}}
\doxysubsubsection{\texorpdfstring{\_futures}{\_futures}}
{\footnotesize\ttfamily \label{classAlgo_a671449864b2d1a1af9a57970eb104a0f} 
std\+::vector$<$std\+::future$<$bool$>$ $>$ Algo\+::\+\_\+futures\hspace{0.3cm}{\ttfamily [private]}}



Referenced by \mbox{\hyperlink{classAlgo_a8fcaaeaa5ad212a126490a19370c9b7e}{process()}}, and \mbox{\hyperlink{classAlgo_a330f03f9df9e5d1e2b701bc3f5e94524}{stop()}}.

\Hypertarget{classAlgo_a6cffb1f6d087978eba685bcb1d06b11d}\index{Algo@{Algo}!\_initialized@{\_initialized}}
\index{\_initialized@{\_initialized}!Algo@{Algo}}
\doxysubsubsection{\texorpdfstring{\_initialized}{\_initialized}}
{\footnotesize\ttfamily \label{classAlgo_a6cffb1f6d087978eba685bcb1d06b11d} 
std\+::atomic$<$bool$>$ Algo\+::\+\_\+initialized \{false\}\hspace{0.3cm}{\ttfamily [private]}}



Referenced by \mbox{\hyperlink{classAlgo_ac8b70d722d4b2c1ad5cad4a63c3b7c62}{initialize()}}, and \mbox{\hyperlink{classAlgo_a6fef1866e14e8a08788cb1d54afcedaf}{initialized()}}.

\Hypertarget{classAlgo_ac4f2da176cc2dc9ba757140a635fe9b8}\index{Algo@{Algo}!\_order\_queue@{\_order\_queue}}
\index{\_order\_queue@{\_order\_queue}!Algo@{Algo}}
\doxysubsubsection{\texorpdfstring{\_order\_queue}{\_order\_queue}}
{\footnotesize\ttfamily \label{classAlgo_ac4f2da176cc2dc9ba757140a635fe9b8} 
\mbox{\hyperlink{classutils_1_1ThreadSafeQueue}{utils\+::\+Thread\+Safe\+Queue}}$<$trading\+::\+Order$>$ Algo\+::\+\_\+order\+\_\+queue\hspace{0.3cm}{\ttfamily [private]}}



Referenced by \mbox{\hyperlink{classAlgo_a8fcaaeaa5ad212a126490a19370c9b7e}{process()}}.

\Hypertarget{classAlgo_a889e1362976e78c4904007ee5edfd3fe}\index{Algo@{Algo}!\_orders@{\_orders}}
\index{\_orders@{\_orders}!Algo@{Algo}}
\doxysubsubsection{\texorpdfstring{\_orders}{\_orders}}
{\footnotesize\ttfamily \label{classAlgo_a889e1362976e78c4904007ee5edfd3fe} 
std\+::queue$<$trading\+::\+Order$>$ Algo\+::\+\_\+orders\hspace{0.3cm}{\ttfamily [private]}}



Referenced by \mbox{\hyperlink{classAlgo_ac223b246cd2f8851c4e0893ff41547fa}{generate\+\_\+orders()}}.

\Hypertarget{classAlgo_af5bcfa2719e948826f71983a18ec017d}\index{Algo@{Algo}!\_pub@{\_pub}}
\index{\_pub@{\_pub}!Algo@{Algo}}
\doxysubsubsection{\texorpdfstring{\_pub}{\_pub}}
{\footnotesize\ttfamily \label{classAlgo_af5bcfa2719e948826f71983a18ec017d} 
std\+::shared\+\_\+ptr$<$\mbox{\hyperlink{classPublisher}{Publisher}}$>$ Algo\+::\+\_\+pub\hspace{0.3cm}{\ttfamily [private]}}



Referenced by \mbox{\hyperlink{classAlgo_ac8b70d722d4b2c1ad5cad4a63c3b7c62}{initialize()}}, \mbox{\hyperlink{classAlgo_a8fcaaeaa5ad212a126490a19370c9b7e}{process()}}, and \mbox{\hyperlink{classAlgo_ac556564d232b2d90cec73718538ec804}{send()}}.

\Hypertarget{classAlgo_a743ddc60baad0afa7f036a529c340460}\index{Algo@{Algo}!\_reader\_thread@{\_reader\_thread}}
\index{\_reader\_thread@{\_reader\_thread}!Algo@{Algo}}
\doxysubsubsection{\texorpdfstring{\_reader\_thread}{\_reader\_thread}}
{\footnotesize\ttfamily \label{classAlgo_a743ddc60baad0afa7f036a529c340460} 
std\+::jthread Algo\+::\+\_\+reader\+\_\+thread\hspace{0.3cm}{\ttfamily [private]}}



Referenced by \mbox{\hyperlink{classAlgo_a8fcaaeaa5ad212a126490a19370c9b7e}{process()}}, and \mbox{\hyperlink{classAlgo_a330f03f9df9e5d1e2b701bc3f5e94524}{stop()}}.

\Hypertarget{classAlgo_a3ce5d714379ab5094b6d82b99421b4a3}\index{Algo@{Algo}!\_running@{\_running}}
\index{\_running@{\_running}!Algo@{Algo}}
\doxysubsubsection{\texorpdfstring{\_running}{\_running}}
{\footnotesize\ttfamily \label{classAlgo_a3ce5d714379ab5094b6d82b99421b4a3} 
std\+::atomic$<$bool$>$ Algo\+::\+\_\+running \{false\}\hspace{0.3cm}{\ttfamily [private]}}

\Hypertarget{classAlgo_a4943cab875d5261b0abec360b68878e8}\index{Algo@{Algo}!\_send\_mutex@{\_send\_mutex}}
\index{\_send\_mutex@{\_send\_mutex}!Algo@{Algo}}
\doxysubsubsection{\texorpdfstring{\_send\_mutex}{\_send\_mutex}}
{\footnotesize\ttfamily \label{classAlgo_a4943cab875d5261b0abec360b68878e8} 
std\+::mutex Algo\+::\+\_\+send\+\_\+mutex\hspace{0.3cm}{\ttfamily [private]}}



Referenced by \mbox{\hyperlink{classAlgo_a8fcaaeaa5ad212a126490a19370c9b7e}{process()}}.

\Hypertarget{classAlgo_adb85594bf1d2e7c9357d353b5e97787d}\index{Algo@{Algo}!\_thread\_pool@{\_thread\_pool}}
\index{\_thread\_pool@{\_thread\_pool}!Algo@{Algo}}
\doxysubsubsection{\texorpdfstring{\_thread\_pool}{\_thread\_pool}}
{\footnotesize\ttfamily \label{classAlgo_adb85594bf1d2e7c9357d353b5e97787d} 
\mbox{\hyperlink{classutils_1_1ThreadPool}{utils\+::\+Thread\+Pool}} Algo\+::\+\_\+thread\+\_\+pool\hspace{0.3cm}{\ttfamily [private]}}



Referenced by \mbox{\hyperlink{classAlgo_a8fcaaeaa5ad212a126490a19370c9b7e}{process()}}.

\Hypertarget{classAlgo_ac72ec5a778fce0be42ebf635f2c504d0}\index{Algo@{Algo}!\_worker\_threads@{\_worker\_threads}}
\index{\_worker\_threads@{\_worker\_threads}!Algo@{Algo}}
\doxysubsubsection{\texorpdfstring{\_worker\_threads}{\_worker\_threads}}
{\footnotesize\ttfamily \label{classAlgo_ac72ec5a778fce0be42ebf635f2c504d0} 
std\+::vector$<$std\+::jthread$>$ Algo\+::\+\_\+worker\+\_\+threads\hspace{0.3cm}{\ttfamily [private]}}



Referenced by \mbox{\hyperlink{classAlgo_a8fcaaeaa5ad212a126490a19370c9b7e}{process()}}, and \mbox{\hyperlink{classAlgo_a330f03f9df9e5d1e2b701bc3f5e94524}{stop()}}.



The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
include/\mbox{\hyperlink{Algo_8hh}{Algo.\+hh}}\item 
src/\mbox{\hyperlink{Algo_8cc}{Algo.\+cc}}\end{DoxyCompactItemize}
