changed pointer stuff

This commit is contained in:
Neeflix
2018-08-08 11:16:19 +02:00
parent 0c08b940f3
commit 844847edca
12 changed files with 56 additions and 36 deletions

View File

@@ -9,22 +9,37 @@
namespace Input
{
InputDriver::InputDriver(std::shared_ptr<IEventNotifier> event_notifier, std::unique_ptr<IDetector> detector) :
event_notifier(event_notifier), detector(std::move(detector))
InputDriver::InputDriver(std::shared_ptr<IEventNotifier> event_notifier, std::unique_ptr<IDetector> detector, std::map<std::string, std::shared_ptr<Event>> events) :
event_notifier(event_notifier),
detector(std::move(detector)),
events(events)
{
CLOG(INFO, INPUT_LOGGER) << "Created InputDriver";
}
void InputDriver::register_event_handler(IEventHandler* handler)
{
event_notifier->register_event_handler(handler);
this->event_notifier->register_event_handler(handler);
}
void InputDriver::unregister_event_handler(IEventHandler* handler)
{
event_notifier->unregister_event_handler(handler);
this->event_notifier->unregister_event_handler(handler);
}
std::shared_ptr<Event> InputDriver::get_event(std::string name)
{
std::shared_ptr<Event> event;
try
{
event = this->events.at(name);
}
catch(std::out_of_range& e)
{
CLOG_N_TIMES(1, WARNING, OUTPUT_LOGGER) << "Did not found event " << name << " please check config file!";
}
return event;
}
}