Scine::Core
3.0.0
Module management and core interface definitions
|
Provides helpers for the general implementation of classes deriving from Module. More...
#include "boost/any.hpp"
#include "boost/mpl/at.hpp"
#include "boost/mpl/find_if.hpp"
#include "boost/mpl/for_each.hpp"
#include "boost/mpl/map.hpp"
#include "boost/mpl/size.hpp"
#include "boost/mpl/size_t.hpp"
#include "boost/mpl/vector.hpp"
#include <algorithm>
#include <array>
#include <memory>
#include <stdexcept>
#include <string>
#include <vector>
Go to the source code of this file.
Functions | |
bool | Scine::Core::DerivedModule::detail::caseInsensitiveEqual (const std::string &a, const std::string &b) |
template<typename Sequence , typename Predicate , typename Executable > | |
auto | Scine::Core::DerivedModule::detail::exec_if (const Predicate &p, const Executable &e, Sequence *=0) -> typename Executable::ResultType |
Run-time "iteration" through type list, if predicate matches, call another function, otherwise return its none. More... | |
constexpr bool | Scine::Core::DerivedModule::detail::strEqual (const char *a, const char *b) |
template<typename... ModelTypes> | |
constexpr bool | Scine::Core::DerivedModule::detail::identifiersOverlap () |
template<typename MPLVector , std::size_t... Inds> | |
constexpr bool | Scine::Core::DerivedModule::detail::identifierOverlapForwarder (std::index_sequence< Inds...>) |
template<typename MPLMap > | |
boost::any | Scine::Core::DerivedModule::resolve (const std::string &interface, const std::string &model) |
Creates an InterfaceType shared_ptr of a matching model to an interface. More... | |
template<typename MPLMap > | |
bool | Scine::Core::DerivedModule::has (const std::string &interface, const std::string &model) noexcept |
Checks whether a module has a particular model for a particular interface. More... | |
template<typename MPLMap > | |
std::vector< std::string > | Scine::Core::DerivedModule::announceInterfaces () noexcept |
Announces all interface names. More... | |
template<typename MPLMap > | |
std::vector< std::string > | Scine::Core::DerivedModule::announceModels (const std::string &interface) noexcept |
Announces all model names for a particular interface. More... | |
Provides helpers for the general implementation of classes deriving from Module.