Template Class aggregate_oracle

Class Documentation

template<typename TOracleTypes>
class aggregate_oracle

Base class for project oracles (which will contain multiple instances of specific oracles). Enables the injection of perfect knowledge (of one or more types) into the swarm.

Public Types

using oracle_type_variant = typename boost::make_variant_over<typename rmpl::typelist_wrap_apply<TOracleTypes, std::unique_ptr>::type>::type

Public Functions

inline explicit aggregate_oracle(const coconfig::aggregate_oracle_config *config)
inline const coconfig::aggregate_oracle_config *config(void) const
template<typename TOracle>
inline void oracle_add(const std::string &key, std::unique_ptr<TOracle> oracle)
template<typename TOracle>
inline const TOracle *oracle_get(const std::string &key) const

Protected Functions

template<typename TOracle>
inline TOracle *oracle_get(const std::string &key)