22#ifndef PROTOBOARD_TYPES_H_
23#define PROTOBOARD_TYPES_H_
25#include <boost/bimap.hpp>
27#include <unordered_map>
33typedef std::unordered_map<std::string, std::shared_ptr<pb_convert>> pb_conversion_map;
38template <
typename... Ts>
45template <
class IfaceT>
54template <
class pbEnumT,
class bbEnumT>
58 typedef boost::bimap<pbEnumT, bbEnumT> bimapT;
65 constexpr enum_map(std::initializer_list<typename bimapT::value_type> init)
66 : list(init), map(list.begin(), list.end())
74 constexpr const bbEnumT &
77 return map.left.at(v);
84 constexpr const pbEnumT &
87 return map.right.at(v);
91 const std::vector<typename bimapT::value_type> list;
The main thread that is woken each time a message arrives on any of the interfaces watched by a bb_if...
A compile-time constant bidirectional map that can be used to match blackboard interface enum values ...
constexpr const bbEnumT & of(pbEnumT v) const
constexpr const pbEnumT & of(bbEnumT v) const
constexpr enum_map(std::initializer_list< typename bimapT::value_type > init)
constexpr constructor
Helper structure to wrap a list of types into a single type.