1 #ifndef SOCKETCAN_INTERFACE_DUMMY_H 2 #define SOCKETCAN_INTERFACE_DUMMY_H 4 #include <unordered_map> 9 #include <boost/algorithm/string.hpp> 16 using Map = std::unordered_map<std::string, Frame>;
24 if(multi || map_.find(k) == map_.end()){
25 map_.insert( std::make_pair(boost::to_lower_copy(k), v));
33 bool add(
const std::string &k,
const Frame &v,
bool multi){
34 return add_noconv(boost::to_lower_copy(k), v, multi);
39 bool add(
const std::string &k,
const std::string &v,
bool multi){
42 bool add(
const Frame &k,
const std::string &v,
bool multi){
46 if(loopback_) frame_dispatcher_.
dispatch(msg.
key(), msg);
48 std::pair <Map::iterator, Map::iterator> r = map_.equal_range(
tostring(msg,
true));
49 for (Map::iterator it=r.first; it!=r.second; ++it){
50 frame_dispatcher_.
dispatch(it->second.key(), it->second);
53 catch(
const std::out_of_range &e){
73 if (!internal_error) {
84 bool init(
const std::string &device,
bool loopback){
bool add_noconv(const std::string &k, const Frame &v, bool multi)
StateListener::ListenerConstSharedPtr StateListenerConstSharedPtr
std::string tostring(const Header &h, bool lc)
std::function< void(const Frame &)> FrameFunc
void dispatch(const K &key, const typename BaseClass::Type &obj)
DummyInterface(bool loopback)
std::unordered_map< std::string, Frame > Map
StateDispatcher state_dispatcher_
virtual FrameListenerConstSharedPtr createMsgListener(const FrameFunc &delegate)
Frame toframe(const std::string &s)
FrameListener::ListenerConstSharedPtr FrameListenerConstSharedPtr
virtual bool translateError(unsigned int internal_error, std::string &str)
virtual StateListenerConstSharedPtr createStateListener(const StateFunc &delegate)
std::function< void(const State &)> StateFunc
void dispatch(const Type &obj)
bool add(const Frame &k, const std::string &v, bool multi)
bool add(const std::string &k, const Frame &v, bool multi)
enum can::State::DriverState driver_state
bool add(const Frame &k, const Frame &v, bool multi)
bool add(const std::string &k, const std::string &v, bool multi)
virtual bool doesLoopBack() const
BaseClass::ListenerConstSharedPtr createListener(const K &key, const typename BaseClass::Callable &callable)
ListenerConstSharedPtr createListener(const Callable &callable)
unsigned int internal_error
driver specific error
bool init(const std::string &device, bool loopback)
std::shared_ptr< DummyInterface > DummyInterfaceSharedPtr
virtual bool send(const Frame &msg)
virtual FrameListenerConstSharedPtr createMsgListener(const Frame::Header &h, const FrameFunc &delegate)
FrameDispatcher frame_dispatcher_