added distribution events

This commit is contained in:
Jonas Zeunert
2018-09-21 00:41:13 +02:00
parent 0d0c94253e
commit 5f7dd47f2b
7 changed files with 70 additions and 9 deletions

View File

@@ -45,7 +45,8 @@ std::shared_ptr<IInputDriver> InputDriverFactory::get_InputDriver(std::istream &
void InputDriverFactory::create_input_events(json matrix_config, std::map<char, std::shared_ptr<Event>>& address_event_map,
std::map<std::string, std::shared_ptr<Event>>& name_event_map)
std::map<std::string, std::shared_ptr<Event>>& name_event_map,
std::shared_ptr<IEventNotifier> event_notifier)
{
auto& event_array = matrix_config.at("input_matrix");
for (auto &json_event : event_array)
@@ -56,8 +57,10 @@ void InputDriverFactory::create_input_events(json matrix_config, std::map<char,
std::string name = json_event.at("name");
char address = json_event.at("address").get<json::number_integer_t>();
int priority = json_event.at("priority").get<json::number_integer_t>();
int deactivation_time = json_event.at("deactivation_time_milli").get<json::number_integer_t>();
std::shared_ptr<Event> event_ptr(new Event(address, priority, name));
std::shared_ptr<Event> event_ptr(new DistributingEvent(address, priority, name,
std::chrono::milliseconds(deactivation_time), event_notifier));
address_event_map.emplace(address, event_ptr);
name_event_map.emplace(name, event_ptr);