#include "routing.h" #include #include namespace midi_router { void Router::route(Route_Map const & config) { Message m; if (m_queue.wait_dequeue_timed(m, std::chrono::milliseconds(500))) { if (!config.contains(*m.source_id) || !config.at(*m.source_id).contains(m.type())) { return; } for (auto const & target: config.at(*m.source_id).at(m.type())) { target(m.bytes); } } } void Router::submit(Message const & message) { if (!m_queue.try_enqueue(message)) { std::cout << "Failed to enqueue message from " << message.source_id << "\n"; } } } // namespace midi_router