4#ifndef _b7df6a58_79dd_4d8c_92ab_616d6fe3c0ce
5#define _b7df6a58_79dd_4d8c_92ab_616d6fe3c0ce
9#include <boost/variant/variant.hpp>
11#include <MrProtSrv/Domain/CoreNative/SeqLim.h>
12#include <MrProtSrv/Domain/MrProtData/MrProt/MrProt.h>
13#include <MrProtSrv/Domain/MrProtData/MrProt/SeqIF/SeqExpo.h>
32 std::function<T(MrProt &)>,
34 std::function<T(MrProt &, SeqLim &, SeqExpo &)>,
40 std::function<T(MrProt &, SeqLim &, SeqExpo &, Dictionary::Pointer)>>
43 using typename boost::static_visitor<
48 result_type
operator()(std::function<T()>
const & f)
const
63 result_type
operator()(std::function<T(MrProt &)>
const & f)
const
79 std::function<T(MrProt &, SeqLim &, SeqExpo &)>
const & f)
const
std::shared_ptr< Dictionary > Pointer
Reference-counted pointer to Dictionary
Definition Dictionary.h:39
Adapt a FlexibleFunction to its nominal form.
Definition FlexibleFunction.h:41
result_type operator()(std::function< T()> const &f) const
Adapt an empty function.
Definition FlexibleFunction.h:48
result_type operator()(std::function< T(MrProt &, Dictionary::Pointer)> const &f) const
Adapt an (protocol, dictionary) function.
Definition FlexibleFunction.h:70
result_type operator()(std::function< T(Dictionary::Pointer)> const &f) const
Adapt an (dictionary) function.
Definition FlexibleFunction.h:55
result_type operator()(std::function< T(MrProt &)> const &f) const
Adapt an (protocol) function.
Definition FlexibleFunction.h:63
result_type operator()(std::function< T(MrProt &, SeqLim &, SeqExpo &, msl::Dictionary::Pointer)> const &f) const
Adapt an (protocol, limits, exports, dictionary) function.
Definition FlexibleFunction.h:86
result_type operator()(std::function< T(MrProt &, SeqLim &, SeqExpo &)> const &f) const
Adapt an (protocol, limits, exports) function.
Definition FlexibleFunction.h:78
boost::variant< std::function< T()>, std::function< T(Dictionary::Pointer)>, std::function< T(MrProt &)>, std::function< T(MrProt &, Dictionary::Pointer)>, std::function< T(MrProt &, SeqLim &, SeqExpo &)>, std::function< T(MrProt &, SeqLim &, SeqExpo &, Dictionary::Pointer)> > FlexibleFunction
A graph function (e.g. Case or If), with flexible arguments.
Definition FlexibleFunction.h:35
std::function< T(MrProt &, SeqLim &, SeqExpo &, Dictionary::Pointer)> function_adapter(FlexibleFunction< T > const &f)
Adapt a FlexibleFunction to its nominal form.
Definition FlexibleFunction.h:96
Top-level namespace of the msl library.
Definition acceleration.h:17