\doxysection{Algo.\+hh}
\hypertarget{Algo_8hh_source}{}\label{Algo_8hh_source}\index{include/Algo.hh@{include/Algo.hh}}
\mbox{\hyperlink{Algo_8hh}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{00001\ \textcolor{preprocessor}{\#pragma\ once}}
\DoxyCodeLine{00002\ }
\DoxyCodeLine{00003\ \textcolor{comment}{//\ C++\ Includes}}
\DoxyCodeLine{00004\ \textcolor{preprocessor}{\#include\ <memory>}}
\DoxyCodeLine{00005\ \textcolor{preprocessor}{\#include\ <queue>}}
\DoxyCodeLine{00006\ \textcolor{preprocessor}{\#include\ <atomic>}}
\DoxyCodeLine{00007\ \textcolor{preprocessor}{\#include\ <thread>}}
\DoxyCodeLine{00008\ \textcolor{preprocessor}{\#include\ <future>}}
\DoxyCodeLine{00009\ }
\DoxyCodeLine{00010\ }
\DoxyCodeLine{00011\ \textcolor{comment}{//\ FastInAHurry\ includes}}
\DoxyCodeLine{00012\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{Publisher_8hh}{Publisher.hh}}"{}}}
\DoxyCodeLine{00013\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{ThreadSafeQueue_8hh}{utils/ThreadSafeQueue.hh}}"{}}}
\DoxyCodeLine{00014\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{ThreadPool_8hh}{utils/ThreadPool.hh}}"{}}}
\DoxyCodeLine{00015\ }
\DoxyCodeLine{00016\ }
\DoxyCodeLine{00017\ \textcolor{keyword}{class\ }\mbox{\hyperlink{classAlgo_aaf4f951979fc60411ed84c558f081867}{Algo}}\ \{}
\DoxyCodeLine{00018\ \textcolor{keyword}{public}:}
\DoxyCodeLine{00019\ \ \ \ \ \mbox{\hyperlink{classAlgo_aaf4f951979fc60411ed84c558f081867}{Algo}}();}
\DoxyCodeLine{00020\ }
\DoxyCodeLine{00021\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classAlgo_ac8b70d722d4b2c1ad5cad4a63c3b7c62}{initialize}}();}
\DoxyCodeLine{00022\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classAlgo_ac223b246cd2f8851c4e0893ff41547fa}{generate\_orders}}();}
\DoxyCodeLine{00023\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classAlgo_a8fcaaeaa5ad212a126490a19370c9b7e}{process}}();}
\DoxyCodeLine{00024\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classAlgo_ac556564d232b2d90cec73718538ec804}{send}}(trading::Order\&);}
\DoxyCodeLine{00025\ \ \ \ \ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{classAlgo_a6fef1866e14e8a08788cb1d54afcedaf}{initialized}}();}
\DoxyCodeLine{00026\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classAlgo_a330f03f9df9e5d1e2b701bc3f5e94524}{stop}}();}
\DoxyCodeLine{00027\ \textcolor{keyword}{private}:}
\DoxyCodeLine{00028\ \ \ \ \ std::queue<trading::Order>\ \mbox{\hyperlink{classAlgo_a889e1362976e78c4904007ee5edfd3fe}{\_orders}};}
\DoxyCodeLine{00029\ \ \ \ \ std::atomic<bool>\ \mbox{\hyperlink{classAlgo_a6cffb1f6d087978eba685bcb1d06b11d}{\_initialized}}\{\textcolor{keyword}{false}\};}
\DoxyCodeLine{00030\ \ \ \ \ std::atomic<bool>\ \mbox{\hyperlink{classAlgo_a3ce5d714379ab5094b6d82b99421b4a3}{\_running}}\{\textcolor{keyword}{false}\};}
\DoxyCodeLine{00031\ \ \ \ \ std::shared\_ptr<Publisher>\ \ \mbox{\hyperlink{classAlgo_af5bcfa2719e948826f71983a18ec017d}{\_pub}};}
\DoxyCodeLine{00032\ }
\DoxyCodeLine{00033\ \ \ \ \ \mbox{\hyperlink{classutils_1_1ThreadSafeQueue}{utils::ThreadSafeQueue<trading::Order>}}\ \mbox{\hyperlink{classAlgo_ac4f2da176cc2dc9ba757140a635fe9b8}{\_order\_queue}};}
\DoxyCodeLine{00034\ \ \ \ \ \mbox{\hyperlink{classutils_1_1ThreadPool}{utils::ThreadPool}}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classAlgo_adb85594bf1d2e7c9357d353b5e97787d}{\_thread\_pool}};}
\DoxyCodeLine{00035\ }
\DoxyCodeLine{00036\ \ \ \ \ std::mutex\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classAlgo_a4943cab875d5261b0abec360b68878e8}{\_send\_mutex}};}
\DoxyCodeLine{00037\ \ \ \ \ std::jthread\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{classAlgo_a743ddc60baad0afa7f036a529c340460}{\_reader\_thread}};}
\DoxyCodeLine{00038\ \ \ \ \ std::vector<std::jthread>\ \ \ \ \ \ \ \mbox{\hyperlink{classAlgo_ac72ec5a778fce0be42ebf635f2c504d0}{\_worker\_threads}};}
\DoxyCodeLine{00039\ \ \ \ \ std::vector<std::future<bool>>\ \ \mbox{\hyperlink{classAlgo_a671449864b2d1a1af9a57970eb104a0f}{\_futures}};}
\DoxyCodeLine{00040\ \};}

\end{DoxyCode}
