adapt driver fac
This commit is contained in:
@@ -33,20 +33,20 @@ std::shared_ptr<IInputDriver> InputDriverFactory::get_InputDriver(std::istream &
|
|||||||
|
|
||||||
std::shared_ptr<IEventNotifier> event_notifier(new EventNotifier(event_queue));
|
std::shared_ptr<IEventNotifier> event_notifier(new EventNotifier(event_queue));
|
||||||
|
|
||||||
std::map<char, std::shared_ptr<DistributingEvent>> address_event_map;
|
std::vector<std::shared_ptr<DistributingEvent>> events;
|
||||||
std::map<std::string, std::shared_ptr<Event>> name_event_map;
|
std::map<std::string, std::shared_ptr<Event>> name_event_map;
|
||||||
|
|
||||||
create_input_events(matrix_config, address_event_map, name_event_map, event_notifier);
|
create_input_events(matrix_config, events, name_event_map, event_notifier);
|
||||||
|
|
||||||
std::unique_ptr<IInputGPIOInterface> input_gpio_interface(new InputGPIOInterface(input_config_stream));
|
std::unique_ptr<IInputGPIOInterface> input_gpio_interface(new InputGPIOInterface(input_config_stream));
|
||||||
std::unique_ptr<IDetector> detector(
|
std::unique_ptr<IDetector> detector(
|
||||||
new Detector(std::move(input_gpio_interface), address_event_map, event_notifier));
|
new Detector(std::move(input_gpio_interface), events));
|
||||||
|
|
||||||
return std::shared_ptr<InputDriver>(new InputDriver(event_notifier, std::move(detector), name_event_map));
|
return std::shared_ptr<InputDriver>(new InputDriver(event_notifier, std::move(detector), name_event_map));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void InputDriverFactory::create_input_events(json matrix_config, std::map<char, std::shared_ptr<DistributingEvent>>& address_event_map,
|
void InputDriverFactory::create_input_events(json matrix_config, std::vector<std::shared_ptr<DistributingEvent>>& events,
|
||||||
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)
|
std::shared_ptr<IEventNotifier> event_notifier)
|
||||||
{
|
{
|
||||||
@@ -64,7 +64,7 @@ void InputDriverFactory::create_input_events(json matrix_config, std::map<char,
|
|||||||
std::shared_ptr<DistributingEvent> event_ptr(new DistributingEvent(address, priority, name,
|
std::shared_ptr<DistributingEvent> event_ptr(new DistributingEvent(address, priority, name,
|
||||||
std::chrono::milliseconds(deactivation_time), event_notifier));
|
std::chrono::milliseconds(deactivation_time), event_notifier));
|
||||||
|
|
||||||
address_event_map.emplace(address, event_ptr);
|
events.push_back(event_ptr);
|
||||||
name_event_map.emplace(name, event_ptr);
|
name_event_map.emplace(name, event_ptr);
|
||||||
}
|
}
|
||||||
catch (json::exception &e)
|
catch (json::exception &e)
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
static void create_input_events(nlohmann::json matrix_config,
|
static void create_input_events(nlohmann::json matrix_config,
|
||||||
std::map<char, std::shared_ptr<DistributingEvent>>& address_event_map,
|
std::vector<std::shared_ptr<DistributingEvent>>& events,
|
||||||
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);
|
std::shared_ptr<IEventNotifier> event_notifier);
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user