52 lines
1.2 KiB
C++
52 lines
1.2 KiB
C++
/*
|
|
* InputDriver.cpp
|
|
*
|
|
* Created on: Jun 15, 2018
|
|
* Author: Andreas Schneider, Johannes Wendel, Jonas Zeunert, Rafael Vinci, Dr. Franca Rupprecht
|
|
*/
|
|
#include "InputDriver.h"
|
|
|
|
#include "utility/config.h"
|
|
|
|
#include <input/ErrorEvent.hpp>
|
|
|
|
namespace flippR_driver
|
|
{
|
|
namespace input
|
|
{
|
|
|
|
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)
|
|
{
|
|
this->event_notifier->register_event_handler(handler);
|
|
}
|
|
|
|
void InputDriver::unregister_event_handler(IEventHandler *handler)
|
|
{
|
|
this->event_notifier->unregister_event_handler(handler);
|
|
}
|
|
|
|
std::shared_ptr<Event> InputDriver::get_event(std::string name)
|
|
{
|
|
std::shared_ptr<Event> event(new ErrorEvent());
|
|
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;
|
|
}
|
|
|
|
}
|
|
}
|
|
|