\hypertarget{_algorithm_base_8h}{\section{Core/\-Algorithms/\-Base/\-Algorithm\-Base.h File Reference}
\label{_algorithm_base_8h}\index{Core/\-Algorithms/\-Base/\-Algorithm\-Base.\-h@{Core/\-Algorithms/\-Base/\-Algorithm\-Base.\-h}}
}
{\ttfamily \#include $<$string$>$}\\*
{\ttfamily \#include $<$set$>$}\\*
{\ttfamily \#include $<$stdexcept$>$}\\*
{\ttfamily \#include $<$iosfwd$>$}\\*
{\ttfamily \#include $<$boost/variant.\-hpp$>$}\\*
{\ttfamily \#include $<$boost/function.\-hpp$>$}\\*
{\ttfamily \#include $<$boost/noncopyable.\-hpp$>$}\\*
{\ttfamily \#include $<$Core/\-Logging/\-Logger\-Interface.\-h$>$}\\*
{\ttfamily \#include $<$Core/\-Utils/\-Exception.\-h$>$}\\*
{\ttfamily \#include $<$Core/\-Algorithms/\-Base/\-Algorithm\-Fwd.\-h$>$}\\*
{\ttfamily \#include $<$Core/\-Datatypes/\-Datatype\-Fwd.\-h$>$}\\*
{\ttfamily \#include $<$Core/\-Datatypes/\-Has\-Id.\-h$>$}\\*
{\ttfamily \#include $<$Core/\-Utils/\-Progress\-Reporter.\-h$>$}\\*
{\ttfamily \#include $<$Core/\-Utils/\-String\-Util.\-h$>$}\\*
{\ttfamily \#include $<$Core/\-Algorithms/\-Base/share.\-h$>$}\\*
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
struct \hyperlink{struct_s_c_i_run_1_1_core_1_1_algorithms_1_1_name}{Name}
\item 
class \hyperlink{class_s_c_i_run_1_1_core_1_1_algorithms_1_1_algo_option}{Algo\-Option}
\item 
class \hyperlink{class_s_c_i_run_1_1_core_1_1_algorithms_1_1_variable}{Variable}
\item 
class \hyperlink{class_s_c_i_run_1_1_core_1_1_algorithms_1_1_algorithm_logger}{Algorithm\-Logger}
\item 
class \hyperlink{class_s_c_i_run_1_1_core_1_1_algorithms_1_1_algorithm_status_reporter}{Algorithm\-Status\-Reporter}
\item 
class \hyperlink{class_s_c_i_run_1_1_core_1_1_algorithms_1_1_scoped_algorithm_status_reporter}{Scoped\-Algorithm\-Status\-Reporter}
\item 
class \hyperlink{class_s_c_i_run_1_1_core_1_1_algorithms_1_1_algorithm_data}{Algorithm\-Data}
\item 
class \hyperlink{class_s_c_i_run_1_1_core_1_1_algorithms_1_1_algorithm_input}{Algorithm\-Input}
\item 
class \hyperlink{class_s_c_i_run_1_1_core_1_1_algorithms_1_1_algorithm_output}{Algorithm\-Output}
\item 
class \hyperlink{class_s_c_i_run_1_1_core_1_1_algorithms_1_1_algorithm_interface}{Algorithm\-Interface}
\item 
class \hyperlink{class_s_c_i_run_1_1_core_1_1_algorithms_1_1_algorithm_parameter_list}{Algorithm\-Parameter\-List}
\item 
class \hyperlink{class_s_c_i_run_1_1_core_1_1_algorithms_1_1_algo_input_builder}{Algo\-Input\-Builder}
\item 
class \hyperlink{class_s_c_i_run_1_1_core_1_1_algorithms_1_1_algorithm_base}{Algorithm\-Base}
\item 
class \hyperlink{class_s_c_i_run_1_1_core_1_1_algorithms_1_1_algorithm_collaborator}{Algorithm\-Collaborator}
\item 
class \hyperlink{class_s_c_i_run_1_1_core_1_1_algorithms_1_1_algorithm_factory}{Algorithm\-Factory}
\end{DoxyCompactItemize}
\subsection*{Namespaces}
\begin{DoxyCompactItemize}
\item 
\hyperlink{namespace_s_c_i_run}{S\-C\-I\-Run}
\begin{DoxyCompactList}\small\item\em S\-T\-L datatypes needed. \end{DoxyCompactList}\item 
\hyperlink{namespace_s_c_i_run_1_1_core}{S\-C\-I\-Run\-::\-Core}
\item 
\hyperlink{namespace_s_c_i_run_1_1_core_1_1_algorithms}{S\-C\-I\-Run\-::\-Core\-::\-Algorithms}
\end{DoxyCompactItemize}
\subsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \hyperlink{_algorithm_base_8h_ac41ef430a3f26590a97bd82d6cab84e3}{make\-\_\-input}(list)~\hyperlink{class_s_c_i_run_1_1_core_1_1_algorithms_1_1_algo_input_builder}{S\-C\-I\-Run\-::\-Core\-::\-Algorithms\-::\-Algo\-Input\-Builder}() list .build()
\item 
\#define \hyperlink{_algorithm_base_8h_a3416422fc6885930d2605ea2de59f768}{make\-\_\-output}(port\-Name)~\hyperlink{namespace_s_c_i_run_1_1_core_1_1_algorithms_afa778302fa68d5cfe014b01cf572f195}{S\-C\-I\-Run\-::\-Core\-::\-Algorithms\-::\-Algorithm\-Parameter\-Name}(\#port\-Name)
\item 
\#define \hyperlink{_algorithm_base_8h_a089d9962c1e8ede814f74a9a80367be9}{get\-\_\-output}(output\-Obj, port\-Name, type)~boost\-::dynamic\-\_\-pointer\-\_\-cast$<$type$>$(output\-Obj\mbox{[}\hyperlink{_algorithm_base_8h_a3416422fc6885930d2605ea2de59f768}{make\-\_\-output}(port\-Name)\mbox{]});
\item 
\#define \hyperlink{_algorithm_base_8h_a46c437d2911bfce658623bcb720d7862}{A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-P\-A\-R\-A\-M\-E\-T\-E\-R\-\_\-\-D\-E\-C\-L}(\hyperlink{_boost_graph_example_tests_8cc_a8ad72759d07f18eaf8f6690e5dfb747c}{name})~namespace Parameters \{ \hyperlink{_testing_2_utils_2share_8h_ae4d3c4d41d63cd70cd0bf71be40330aa}{S\-C\-I\-S\-H\-A\-R\-E} extern const \hyperlink{namespace_s_c_i_run_1_1_core_1_1_algorithms_afa778302fa68d5cfe014b01cf572f195}{S\-C\-I\-Run\-::\-Core\-::\-Algorithms\-::\-Algorithm\-Parameter\-Name} \hyperlink{_boost_graph_example_tests_8cc_a8ad72759d07f18eaf8f6690e5dfb747c}{name}; \}
\item 
\#define \hyperlink{_algorithm_base_8h_a02367a53b8b0868230c205075c328b59}{A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-P\-A\-R\-A\-M\-E\-T\-E\-R\-\_\-\-D\-E\-F}(ns, \hyperlink{_boost_graph_example_tests_8cc_a8ad72759d07f18eaf8f6690e5dfb747c}{name})~const \hyperlink{namespace_s_c_i_run_1_1_core_1_1_algorithms_afa778302fa68d5cfe014b01cf572f195}{S\-C\-I\-Run\-::\-Core\-::\-Algorithms\-::\-Algorithm\-Parameter\-Name} \hyperlink{_boost_graph_example_tests_8cc_a8ad72759d07f18eaf8f6690e5dfb747c}{S\-C\-I\-Run\-::\-Core\-::\-Algorithms\-::ns\-::\-Parameters\-::name}(\#\hyperlink{_boost_graph_example_tests_8cc_a8ad72759d07f18eaf8f6690e5dfb747c}{name});
\end{DoxyCompactItemize}
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
typedef Name \hyperlink{namespace_s_c_i_run_1_1_core_1_1_algorithms_afa778302fa68d5cfe014b01cf572f195}{Algorithm\-Parameter\-Name}
\item 
typedef Name \hyperlink{namespace_s_c_i_run_1_1_core_1_1_algorithms_a2629df69f9c6e2f19bb5291c3bbe5e08}{Algorithm\-Input\-Name}
\item 
typedef Name \hyperlink{namespace_s_c_i_run_1_1_core_1_1_algorithms_a49601cf20455a35ffa246563e4773556}{Algorithm\-Output\-Name}
\item 
typedef Variable \hyperlink{namespace_s_c_i_run_1_1_core_1_1_algorithms_afd260a3351c4c484ef8c1159138856dc}{Algorithm\-Parameter}
\item 
typedef boost\-::shared\-\_\-ptr\\*
$<$ Algorithm\-Input $>$ \hyperlink{namespace_s_c_i_run_1_1_core_1_1_algorithms_a17ddc6c9a6a8b2b5abd58678c7e91621}{Algorithm\-Input\-Handle}
\item 
typedef boost\-::shared\-\_\-ptr\\*
$<$ Algorithm\-Output $>$ \hyperlink{namespace_s_c_i_run_1_1_core_1_1_algorithms_a26077a4c04cf261b09ead85b5f56e052}{Algorithm\-Output\-Handle}
\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{_testing_2_utils_2share_8h_ae4d3c4d41d63cd70cd0bf71be40330aa}{S\-C\-I\-S\-H\-A\-R\-E} bool \hyperlink{namespace_s_c_i_run_1_1_core_1_1_algorithms_a0b9b1343a0ae403979e1e2af629b5ac0}{operator==} (const \hyperlink{struct_s_c_i_run_1_1_core_1_1_algorithms_1_1_name}{Name} \&lhs, const \hyperlink{struct_s_c_i_run_1_1_core_1_1_algorithms_1_1_name}{Name} \&rhs)
\item 
\hyperlink{_testing_2_utils_2share_8h_ae4d3c4d41d63cd70cd0bf71be40330aa}{S\-C\-I\-S\-H\-A\-R\-E} std\-::ostream \& \hyperlink{namespace_s_c_i_run_1_1_core_1_1_algorithms_a1be252a7474aa42b2fd76a10468be8b3}{operator$<$$<$} (std\-::ostream \&out, const \hyperlink{struct_s_c_i_run_1_1_core_1_1_algorithms_1_1_name}{Name} \&\hyperlink{_boost_graph_example_tests_8cc_a8ad72759d07f18eaf8f6690e5dfb747c}{name})
\item 
\hyperlink{_testing_2_utils_2share_8h_ae4d3c4d41d63cd70cd0bf71be40330aa}{S\-C\-I\-S\-H\-A\-R\-E} bool \hyperlink{namespace_s_c_i_run_1_1_core_1_1_algorithms_a55124600fdd84b531c5be12e2e56cc7c}{operator==} (const \hyperlink{class_s_c_i_run_1_1_core_1_1_algorithms_1_1_algo_option}{Algo\-Option} \&lhs, const \hyperlink{class_s_c_i_run_1_1_core_1_1_algorithms_1_1_algo_option}{Algo\-Option} \&rhs)
\item 
\hyperlink{_testing_2_utils_2share_8h_ae4d3c4d41d63cd70cd0bf71be40330aa}{S\-C\-I\-S\-H\-A\-R\-E} std\-::ostream \& \hyperlink{namespace_s_c_i_run_1_1_core_1_1_algorithms_a198b6af7e7109b0d2e80c8ae6f1202c8}{operator$<$$<$} (std\-::ostream \&out, const \hyperlink{class_s_c_i_run_1_1_core_1_1_algorithms_1_1_algo_option}{Algo\-Option} \&op)
\item 
\hyperlink{_testing_2_utils_2share_8h_ae4d3c4d41d63cd70cd0bf71be40330aa}{S\-C\-I\-S\-H\-A\-R\-E} bool \hyperlink{namespace_s_c_i_run_1_1_core_1_1_algorithms_a9c8ab4ca14547538096318eafeb033a9}{operator==} (const \hyperlink{class_s_c_i_run_1_1_core_1_1_algorithms_1_1_variable}{Variable} \&lhs, const \hyperlink{class_s_c_i_run_1_1_core_1_1_algorithms_1_1_variable}{Variable} \&rhs)
\item 
\hyperlink{_testing_2_utils_2share_8h_ae4d3c4d41d63cd70cd0bf71be40330aa}{S\-C\-I\-S\-H\-A\-R\-E} std\-::ostream \& \hyperlink{namespace_s_c_i_run_1_1_core_1_1_algorithms_ac9baabd64d542e3b140485c85ac99c1d}{operator$<$$<$} (std\-::ostream \&out, const \hyperlink{class_s_c_i_run_1_1_core_1_1_algorithms_1_1_variable}{Variable} \&var)
\item 
\hyperlink{_testing_2_utils_2share_8h_ae4d3c4d41d63cd70cd0bf71be40330aa}{S\-C\-I\-S\-H\-A\-R\-E} \hyperlink{class_s_c_i_run_1_1_core_1_1_algorithms_1_1_algorithm_input}{Algorithm\-Input} \hyperlink{namespace_s_c_i_run_1_1_core_1_1_algorithms_a339eda3a53270a2cfed1499a57e20128}{make\-Null\-Input} ()
\item 
{\footnotesize template$<$typename T $>$ }\\boost\-::shared\-\_\-ptr$<$ T $>$ \hyperlink{namespace_s_c_i_run_1_1_core_1_1_algorithms_a4e766b74b46cfc062b6e85dec61109e7}{optional\-Algo\-Input} (boost\-::optional$<$ boost\-::shared\-\_\-ptr$<$ T $>$$>$ opt)
\end{DoxyCompactItemize}


\subsection{Macro Definition Documentation}
\hypertarget{_algorithm_base_8h_a46c437d2911bfce658623bcb720d7862}{\index{Algorithm\-Base.\-h@{Algorithm\-Base.\-h}!A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-P\-A\-R\-A\-M\-E\-T\-E\-R\-\_\-\-D\-E\-C\-L@{A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-P\-A\-R\-A\-M\-E\-T\-E\-R\-\_\-\-D\-E\-C\-L}}
\index{A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-P\-A\-R\-A\-M\-E\-T\-E\-R\-\_\-\-D\-E\-C\-L@{A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-P\-A\-R\-A\-M\-E\-T\-E\-R\-\_\-\-D\-E\-C\-L}!AlgorithmBase.h@{Algorithm\-Base.\-h}}
\subsubsection[{A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-P\-A\-R\-A\-M\-E\-T\-E\-R\-\_\-\-D\-E\-C\-L}]{\setlength{\rightskip}{0pt plus 5cm}\#define A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-P\-A\-R\-A\-M\-E\-T\-E\-R\-\_\-\-D\-E\-C\-L(
\begin{DoxyParamCaption}
\item[{}]{{\bf name}}
\end{DoxyParamCaption}
)~namespace Parameters \{ {\bf S\-C\-I\-S\-H\-A\-R\-E} extern const {\bf S\-C\-I\-Run\-::\-Core\-::\-Algorithms\-::\-Algorithm\-Parameter\-Name} {\bf name}; \}}}\label{_algorithm_base_8h_a46c437d2911bfce658623bcb720d7862}
\hypertarget{_algorithm_base_8h_a02367a53b8b0868230c205075c328b59}{\index{Algorithm\-Base.\-h@{Algorithm\-Base.\-h}!A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-P\-A\-R\-A\-M\-E\-T\-E\-R\-\_\-\-D\-E\-F@{A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-P\-A\-R\-A\-M\-E\-T\-E\-R\-\_\-\-D\-E\-F}}
\index{A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-P\-A\-R\-A\-M\-E\-T\-E\-R\-\_\-\-D\-E\-F@{A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-P\-A\-R\-A\-M\-E\-T\-E\-R\-\_\-\-D\-E\-F}!AlgorithmBase.h@{Algorithm\-Base.\-h}}
\subsubsection[{A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-P\-A\-R\-A\-M\-E\-T\-E\-R\-\_\-\-D\-E\-F}]{\setlength{\rightskip}{0pt plus 5cm}\#define A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-P\-A\-R\-A\-M\-E\-T\-E\-R\-\_\-\-D\-E\-F(
\begin{DoxyParamCaption}
\item[{}]{ns, }
\item[{}]{{\bf name}}
\end{DoxyParamCaption}
)~const {\bf S\-C\-I\-Run\-::\-Core\-::\-Algorithms\-::\-Algorithm\-Parameter\-Name} {\bf S\-C\-I\-Run\-::\-Core\-::\-Algorithms\-::ns\-::\-Parameters\-::name}(\#{\bf name});}}\label{_algorithm_base_8h_a02367a53b8b0868230c205075c328b59}
\hypertarget{_algorithm_base_8h_a089d9962c1e8ede814f74a9a80367be9}{\index{Algorithm\-Base.\-h@{Algorithm\-Base.\-h}!get\-\_\-output@{get\-\_\-output}}
\index{get\-\_\-output@{get\-\_\-output}!AlgorithmBase.h@{Algorithm\-Base.\-h}}
\subsubsection[{get\-\_\-output}]{\setlength{\rightskip}{0pt plus 5cm}\#define get\-\_\-output(
\begin{DoxyParamCaption}
\item[{}]{output\-Obj, }
\item[{}]{port\-Name, }
\item[{}]{type}
\end{DoxyParamCaption}
)~boost\-::dynamic\-\_\-pointer\-\_\-cast$<$type$>$(output\-Obj\mbox{[}{\bf make\-\_\-output}(port\-Name)\mbox{]});}}\label{_algorithm_base_8h_a089d9962c1e8ede814f74a9a80367be9}
\hypertarget{_algorithm_base_8h_ac41ef430a3f26590a97bd82d6cab84e3}{\index{Algorithm\-Base.\-h@{Algorithm\-Base.\-h}!make\-\_\-input@{make\-\_\-input}}
\index{make\-\_\-input@{make\-\_\-input}!AlgorithmBase.h@{Algorithm\-Base.\-h}}
\subsubsection[{make\-\_\-input}]{\setlength{\rightskip}{0pt plus 5cm}\#define make\-\_\-input(
\begin{DoxyParamCaption}
\item[{}]{list}
\end{DoxyParamCaption}
)~{\bf S\-C\-I\-Run\-::\-Core\-::\-Algorithms\-::\-Algo\-Input\-Builder}() list .build()}}\label{_algorithm_base_8h_ac41ef430a3f26590a97bd82d6cab84e3}
\hypertarget{_algorithm_base_8h_a3416422fc6885930d2605ea2de59f768}{\index{Algorithm\-Base.\-h@{Algorithm\-Base.\-h}!make\-\_\-output@{make\-\_\-output}}
\index{make\-\_\-output@{make\-\_\-output}!AlgorithmBase.h@{Algorithm\-Base.\-h}}
\subsubsection[{make\-\_\-output}]{\setlength{\rightskip}{0pt plus 5cm}\#define make\-\_\-output(
\begin{DoxyParamCaption}
\item[{}]{port\-Name}
\end{DoxyParamCaption}
)~{\bf S\-C\-I\-Run\-::\-Core\-::\-Algorithms\-::\-Algorithm\-Parameter\-Name}(\#port\-Name)}}\label{_algorithm_base_8h_a3416422fc6885930d2605ea2de59f768}
