diff --git a/FlippR-Driver/include/output/IOutputDriver.h b/FlippR-Driver/include/output/IOutputDriver.h index cc1d4e6..7d996e3 100644 --- a/FlippR-Driver/include/output/IOutputDriver.h +++ b/FlippR-Driver/include/output/IOutputDriver.h @@ -8,6 +8,15 @@ #ifndef _SRC_OUTPUT_IOUTPUTDRIVER_H_ #define _SRC_OUTPUT_IOUTPUTDRIVER_H_ +#include "output/items/ILamp.h" +#include "output/items/ISolenoid.h" +#include "output/items/IDisplay.h" +#include "output/items/ISound.h" + +#include +#include +#include + namespace flippR_driver { namespace output @@ -16,8 +25,17 @@ namespace output class IOutputDriver { public: - IOutputDriver(); - virtual ~IOutputDriver(); + virtual ~IOutputDriver() = default; + + virtual std::vector> get_lamps() = 0; + virtual std::vector> get_solenoids() = 0; + virtual std::vector> get_sounds() = 0; + virtual std::vector> get_displays() = 0; + + virtual boost::optional> get_lamp(std::string name) = 0; + virtual boost::optional> get_solenoid(std::string name) = 0; + virtual boost::optional> get_sound(std::string name) = 0; + virtual boost::optional> get_display(char number) = 0; }; } /* namespace output */ diff --git a/FlippR-Driver/src/input/EventHandler.h b/FlippR-Driver/src/input/EventHandler.h index 75ac516..7fd1fcf 100644 --- a/FlippR-Driver/src/input/EventHandler.h +++ b/FlippR-Driver/src/input/EventHandler.h @@ -31,7 +31,7 @@ public: void handle(Event& event) override; private: - std::shared_ptr input_driver; + const std::shared_ptr input_driver; }; } diff --git a/FlippR-Driver/src/input/EventNotifier.h b/FlippR-Driver/src/input/EventNotifier.h index 97eb2ac..5245011 100644 --- a/FlippR-Driver/src/input/EventNotifier.h +++ b/FlippR-Driver/src/input/EventNotifier.h @@ -42,7 +42,7 @@ private: void notify(); private: - utility::IBlockingQueue* event_queue; + const utility::IBlockingQueue* event_queue; std::set event_handlers; bool is_running; diff --git a/FlippR-Driver/src/output/OutputDriver.h b/FlippR-Driver/src/output/OutputDriver.h index a522d3f..81e366c 100644 --- a/FlippR-Driver/src/output/OutputDriver.h +++ b/FlippR-Driver/src/output/OutputDriver.h @@ -10,14 +10,7 @@ #include "output/IOutputDriver.h" -#include "output/items/ILamp.h" -#include "output/items/ISolenoid.h" -#include "output/items/IDisplay.h" -#include "output/items/ISound.h" - -#include #include -#include namespace flippR_driver { @@ -31,21 +24,21 @@ public: virtual ~OutputDriver() = default; // todo what is flipper_relay ? - std::vector> get_lamps(); - std::vector> get_solenoids(); - std::vector> get_sounds(); - std::vector> get_displays(); + std::vector> get_lamps() override; + std::vector> get_solenoids() override; + std::vector> get_sounds() override; + std::vector> get_displays() override; - std::shared_ptr get_lamp(std::string name); - std::shared_ptr get_solenoid(std::string name); - std::shared_ptr get_sound(std::string name); - std::shared_ptr get_display(char number); + boost::optional> get_lamp(std::string name) override; + boost::optional> get_solenoid(std::string name) override; + boost::optional> get_sound(std::string name) override; + boost::optional> get_display(char number) override; private: - std::map> lamps; - std::map> solenoids; - std::map> displays; - std::map> sounds; + const std::map> lamps; + const std::map> solenoids; + const std::map> displays; + const std::map> sounds; }; } /* namespace output */