1#ifndef UTOPIA_DATAIO_DATA_MANAGER_UTILS_HH
2#define UTOPIA_DATAIO_DATA_MANAGER_UTILS_HH
4#include "../../core/type_traits.hh"
5#include "../../core/zip.hh"
6#include "../cfg_utils.hh"
36template <
typename... T >
38 : std::conjunction< Utopia::Utils::is_callable< T >... >
53template <
class ValType,
class KVPairs,
class ObjMap >
65 boost::hana::for_each(
kv_pairs, [&](
auto&&
kv) {
68 if constexpr (std::is_base_of_v<
88 map[
k] = std::make_shared< ValType >(
v);
106template <
class ObjMap,
class ValType,
class KVPairs >
147template <
class AssocsMap,
class NamedTasks,
class NamedDTMap,
class Assocs >
164 throw std::invalid_argument(
165 "Error, explicit associations have to be given when mapping "
166 "unequal numbers of decider or trigger functions and tasks.");
void unpack_shared(KVPairs &&kv_pairs, ObjMap &&map)
Helper function to unpack (key, value) container into a map of shared pointers of a type.
Definition utils.hh:55
AssocsMap build_task_association_map(const NamedTasks &tasks, const NamedDTMap &named_dts, Assocs assocs=Assocs{})
Build an association map, i.e., a map that associates a decider/trigger name with a collection of tas...
Definition utils.hh:149
Container select_entities(const Manager &mngr, const DataIO::Config &sel_cfg)
Select entities according to parameters specified in a configuration.
Definition select.hh:213
Definition metaprogramming.hh:43
typename remove_qualifier< T >::type remove_qualifier_t
Shorthand for 'typename remove_qualifier::value'.
Definition type_traits.hh:97
Metafunction for use with boost hana, check if all T are callable types.
Definition utils.hh:39