From c5867acd522ec5975097b3359eb0f01f15c152c4 Mon Sep 17 00:00:00 2001 From: Jonas Zeunert Date: Wed, 17 Oct 2018 22:00:56 +0200 Subject: [PATCH] refactored utility namespace --- FlippR-Driver/src/output/CabinetItem.h | 30 ++++++------ FlippR-Driver/src/output/Sound.cpp | 15 +++--- FlippR-Driver/src/output/Sound.h | 9 +++- .../{utilities => utility}/BlockingQueue.hpp | 24 ++++++---- .../{utilities => utility}/GPIOInterface.cpp | 8 +++- .../{utilities => utility}/GPIOInterface.h | 10 +++- .../{utilities => utility}/IBlockingQueue.h | 14 ++++-- .../IInputGPIOInterface.h | 10 +++- .../IOutputGPIOInterface.h | 8 ++++ .../InputGPIOInterface.cpp | 46 ++++++++++++------- .../InputGPIOInterface.h | 11 ++++- .../{utilities => utility}/LoggerFactory.cpp | 8 ++++ .../{utilities => utility}/LoggerFactory.h | 13 ++++-- .../OutputGPIOInterface.h | 9 +++- .../src/{utilities => utility}/config.h | 0 15 files changed, 154 insertions(+), 61 deletions(-) rename FlippR-Driver/src/{utilities => utility}/BlockingQueue.hpp (71%) rename FlippR-Driver/src/{utilities => utility}/GPIOInterface.cpp (94%) rename FlippR-Driver/src/{utilities => utility}/GPIOInterface.h (88%) rename FlippR-Driver/src/{utilities => utility}/IBlockingQueue.h (66%) rename FlippR-Driver/src/{utilities => utility}/IInputGPIOInterface.h (77%) rename FlippR-Driver/src/{utilities => utility}/IOutputGPIOInterface.h (80%) rename FlippR-Driver/src/{utilities => utility}/InputGPIOInterface.cpp (64%) rename FlippR-Driver/src/{utilities => utility}/InputGPIOInterface.h (80%) rename FlippR-Driver/src/{utilities => utility}/LoggerFactory.cpp (96%) rename FlippR-Driver/src/{utilities => utility}/LoggerFactory.h (55%) rename FlippR-Driver/src/{utilities => utility}/OutputGPIOInterface.h (82%) rename FlippR-Driver/src/{utilities => utility}/config.h (100%) diff --git a/FlippR-Driver/src/output/CabinetItem.h b/FlippR-Driver/src/output/CabinetItem.h index 2d601c7..8b70cd7 100644 --- a/FlippR-Driver/src/output/CabinetItem.h +++ b/FlippR-Driver/src/output/CabinetItem.h @@ -10,6 +10,9 @@ #include "ICabinetItem.h" +#include "utilities/IOutputGPIOInterface.h" + +#include #include namespace FlippR_Driver @@ -17,21 +20,22 @@ namespace FlippR_Driver namespace output { - class CabinetItem : public ICabinetItem - { - public: - CabinetItem(); - virtual ~CabinetItem(); - virtual bool isActivated(); - virtual bool activate(); - virtual bool deactivate(); +class CabinetItem : public ICabinetItem +{ +public: + CabinetItem(std::shared_ptr output_gpio_interface, int address, std::string name); + virtual ~CabinetItem(); - protected: - int address; - std::string name; + virtual bool isActivated(); + virtual bool activate(); + virtual bool deactivate(); - bool activated; - }; +protected: + int address; + std::string name; + + bool activated; +}; } /* namespace output */ } diff --git a/FlippR-Driver/src/output/Sound.cpp b/FlippR-Driver/src/output/Sound.cpp index 8c8d98f..8f9b81c 100644 --- a/FlippR-Driver/src/output/Sound.cpp +++ b/FlippR-Driver/src/output/Sound.cpp @@ -9,15 +9,16 @@ namespace FlippR_Driver { -namespace output { +namespace output +{ -Sound::Sound() { - // TODO Auto-generated constructor stub +Sound::Sound(std::shared_ptr output_gpio_interface, int address, std::string name) + : output_gpio_interface(output_gpio_interface), address(address), name(name) +{} -} - -Sound::~Sound() { - // TODO Auto-generated destructor stub +void Sound::play() +{ + this->output_gpio_interface->activate(this); } } /* namespace output */ diff --git a/FlippR-Driver/src/output/Sound.h b/FlippR-Driver/src/output/Sound.h index 2280d3c..a6a7939 100644 --- a/FlippR-Driver/src/output/Sound.h +++ b/FlippR-Driver/src/output/Sound.h @@ -10,8 +10,11 @@ #include "ISound.h" +#include #include +#include "utilities/IOutputGPIOInterface.h" + namespace FlippR_Driver { namespace output @@ -20,12 +23,14 @@ namespace output class Sound : ISound { public: - Sound(); - virtual ~Sound(); + Sound(std::shared_ptr output_gpio_interface, int address, std::string name); + virtual ~Sound() = default; virtual void play(); private: + std::shared_ptr output_gpio_interface; + int address; std::string name; }; diff --git a/FlippR-Driver/src/utilities/BlockingQueue.hpp b/FlippR-Driver/src/utility/BlockingQueue.hpp similarity index 71% rename from FlippR-Driver/src/utilities/BlockingQueue.hpp rename to FlippR-Driver/src/utility/BlockingQueue.hpp index c76c6af..84e1fb4 100644 --- a/FlippR-Driver/src/utilities/BlockingQueue.hpp +++ b/FlippR-Driver/src/utility/BlockingQueue.hpp @@ -16,33 +16,41 @@ using namespace boost; -template +namespace FlippR_Driver +{ +namespace utility +{ + +template class BlockingQueue : public IBlockingQueue { private: - std::mutex d_mutex; + std::mutex d_mutex; std::condition_variable d_condition; heap::priority_queue> p_queue; public: - void push(T const& value) + void push(T const &value) { - { - std::unique_lock lock(this->d_mutex); - p_queue.push(value); - } + { + std::unique_lock lock(this->d_mutex); + p_queue.push(value); + } this->d_condition.notify_one(); } T pop() { std::unique_lock lock(this->d_mutex); - this->d_condition.wait(lock, [=]{ return !this->p_queue.empty(); }); + this->d_condition.wait(lock, [=] + { return !this->p_queue.empty(); }); T rc = *this->p_queue.begin(); this->p_queue.pop(); return rc; } }; +} +} diff --git a/FlippR-Driver/src/utilities/GPIOInterface.cpp b/FlippR-Driver/src/utility/GPIOInterface.cpp similarity index 94% rename from FlippR-Driver/src/utilities/GPIOInterface.cpp rename to FlippR-Driver/src/utility/GPIOInterface.cpp index 298a5d4..a14eb2a 100644 --- a/FlippR-Driver/src/utilities/GPIOInterface.cpp +++ b/FlippR-Driver/src/utility/GPIOInterface.cpp @@ -12,6 +12,11 @@ #include "wiringPi/wiringPi.h" #include "json/json.hpp" +namespace FlippR_Driver +{ +namespace utility +{ + std::once_flag GPIOInterface::GPIO_LIB_INITIALIZED; void GPIOInterface::initialize_input_pin(char address) @@ -24,7 +29,6 @@ void GPIOInterface::write_pin(char address, char data) digitalWrite(address, data); } - bool GPIOInterface::read_pin(char address) { return PULLDOWN == digitalRead(address); @@ -39,3 +43,5 @@ GPIOInterface::GPIOInterface() { std::call_once(GPIO_LIB_INITIALIZED, wiringPiSetup); } +} +} \ No newline at end of file diff --git a/FlippR-Driver/src/utilities/GPIOInterface.h b/FlippR-Driver/src/utility/GPIOInterface.h similarity index 88% rename from FlippR-Driver/src/utilities/GPIOInterface.h rename to FlippR-Driver/src/utility/GPIOInterface.h index 7907d37..4cc409f 100644 --- a/FlippR-Driver/src/utilities/GPIOInterface.h +++ b/FlippR-Driver/src/utility/GPIOInterface.h @@ -15,13 +15,18 @@ #include #include +namespace FlippR_Driver +{ +namespace utility +{ class GPIOInterface { public: GPIOInterface(); - virtual ~GPIOInterface() {}; + virtual ~GPIOInterface() + {}; static void initialize_input_pin(char address); @@ -35,7 +40,8 @@ public: static std::once_flag GPIO_LIB_INITIALIZED; }; - +} +} #endif \ No newline at end of file diff --git a/FlippR-Driver/src/utilities/IBlockingQueue.h b/FlippR-Driver/src/utility/IBlockingQueue.h similarity index 66% rename from FlippR-Driver/src/utilities/IBlockingQueue.h rename to FlippR-Driver/src/utility/IBlockingQueue.h index 20b0777..f4eebec 100644 --- a/FlippR-Driver/src/utilities/IBlockingQueue.h +++ b/FlippR-Driver/src/utility/IBlockingQueue.h @@ -8,15 +8,23 @@ #ifndef SRC_UTILITIES_IBLOCKINGQUEUE_H_ #define SRC_UTILITIES_IBLOCKINGQUEUE_H_ -template +namespace FlippR_Driver +{ +namespace utility +{ +template class IBlockingQueue { public: - virtual ~IBlockingQueue(){}; + virtual ~IBlockingQueue() + {}; - virtual void push(T const& value) = 0; + virtual void push(T const &value) = 0; virtual T pop() = 0; }; +} +} + #endif \ No newline at end of file diff --git a/FlippR-Driver/src/utilities/IInputGPIOInterface.h b/FlippR-Driver/src/utility/IInputGPIOInterface.h similarity index 77% rename from FlippR-Driver/src/utilities/IInputGPIOInterface.h rename to FlippR-Driver/src/utility/IInputGPIOInterface.h index e40a7b3..02c7ce2 100644 --- a/FlippR-Driver/src/utilities/IInputGPIOInterface.h +++ b/FlippR-Driver/src/utility/IInputGPIOInterface.h @@ -8,13 +8,21 @@ #ifndef SRC_UTILITIES_IINPUTGPIOINTERFACE_H_ #define SRC_UTILITIES_IINPUTGPIOINTERFACE_H_ +namespace FlippR_Driver +{ +namespace utility +{ class IInputGPIOInterface { public: - virtual ~IInputGPIOInterface(){}; + virtual ~IInputGPIOInterface() + {}; virtual bool read_data(char pin) = 0; }; +} +} + #endif \ No newline at end of file diff --git a/FlippR-Driver/src/utilities/IOutputGPIOInterface.h b/FlippR-Driver/src/utility/IOutputGPIOInterface.h similarity index 80% rename from FlippR-Driver/src/utilities/IOutputGPIOInterface.h rename to FlippR-Driver/src/utility/IOutputGPIOInterface.h index 9ccc098..3b443d6 100644 --- a/FlippR-Driver/src/utilities/IOutputGPIOInterface.h +++ b/FlippR-Driver/src/utility/IOutputGPIOInterface.h @@ -5,8 +5,16 @@ #ifndef FLIPPR_DRIVER_IOUTPUTGPIOINTERFACE_H #define FLIPPR_DRIVER_IOUTPUTGPIOINTERFACE_H +namespace FlippR_Driver +{ +namespace utility +{ + class IOutputGPIOInterface { }; + +} +} #endif //FLIPPR_DRIVER_IOUTPUTGPIOINTERFACE_H diff --git a/FlippR-Driver/src/utilities/InputGPIOInterface.cpp b/FlippR-Driver/src/utility/InputGPIOInterface.cpp similarity index 64% rename from FlippR-Driver/src/utilities/InputGPIOInterface.cpp rename to FlippR-Driver/src/utility/InputGPIOInterface.cpp index 244de20..91d50e7 100644 --- a/FlippR-Driver/src/utilities/InputGPIOInterface.cpp +++ b/FlippR-Driver/src/utility/InputGPIOInterface.cpp @@ -13,6 +13,11 @@ #include "easylogging/easylogging++.h" #include "config.h" #include +namespace FlippR_Driver +{ +namespace utility +{ + using namespace nlohmann; bool InputGPIOInterface::read_data(char pin) @@ -41,8 +46,7 @@ void InputGPIOInterface::write_col(char data) write_pin(this->col_address_C, data & 0b100); } - -InputGPIOInterface::InputGPIOInterface(std::istream& input_config_stream) +InputGPIOInterface::InputGPIOInterface(std::istream &input_config_stream) { init_members(input_config_stream); @@ -54,23 +58,28 @@ void InputGPIOInterface::init_members(std::istream &input_config_stream) json input_config; input_config_stream >> input_config; - try { - json row_json = input_config.at("row"); - row_address_A = row_json.at("A").get(); - row_address_B = row_json.at("B").get(); - row_address_C = row_json.at("C").get(); + try + { + json row_json = input_config.at("row"); + row_address_A = row_json.at("A").get(); + row_address_B = row_json.at("B").get(); + row_address_C = row_json.at("C").get(); - json col_json = input_config.at("col"); - col_address_A = col_json.at("A").get(); - col_address_B = col_json.at("B").get(); - col_address_C = col_json.at("C").get(); + json col_json = input_config.at("col"); + col_address_A = col_json.at("A").get(); + col_address_B = col_json.at("B").get(); + col_address_C = col_json.at("C").get(); - data_address = input_config.at("data").get(); - } catch (json::type_error& e) { - CLOG(ERROR, INPUT_LOGGER) << e.what(); - } catch (json::out_of_range& e) { - CLOG(ERROR, INPUT_LOGGER) << e.what(); - } + data_address = input_config.at("data").get(); + } + catch(json::type_error &e) + { + CLOG(ERROR, INPUT_LOGGER) << e.what(); + } + catch(json::out_of_range &e) + { + CLOG(ERROR, INPUT_LOGGER) << e.what(); + } } void InputGPIOInterface::init_pins() @@ -85,3 +94,6 @@ void InputGPIOInterface::init_pins() initialize_input_pin(data_address); } + +} +} \ No newline at end of file diff --git a/FlippR-Driver/src/utilities/InputGPIOInterface.h b/FlippR-Driver/src/utility/InputGPIOInterface.h similarity index 80% rename from FlippR-Driver/src/utilities/InputGPIOInterface.h rename to FlippR-Driver/src/utility/InputGPIOInterface.h index f2f7d4a..289b5db 100644 --- a/FlippR-Driver/src/utilities/InputGPIOInterface.h +++ b/FlippR-Driver/src/utility/InputGPIOInterface.h @@ -12,14 +12,19 @@ #include "IInputGPIOInterface.h" #include "GPIOInterface.h" +namespace FlippR_Driver +{ +namespace utility +{ + class InputGPIOInterface : public IInputGPIOInterface, GPIOInterface { public: - InputGPIOInterface(std::istream& input_config_stream); + InputGPIOInterface(std::istream &input_config_stream); bool read_data(char pin); private: - void init_members(std::istream& input_config_stream); + void init_members(std::istream &input_config_stream); void init_pins(); void write_row(char data); void write_col(char data); @@ -34,4 +39,6 @@ private: char data_address; }; +} +} #endif \ No newline at end of file diff --git a/FlippR-Driver/src/utilities/LoggerFactory.cpp b/FlippR-Driver/src/utility/LoggerFactory.cpp similarity index 96% rename from FlippR-Driver/src/utilities/LoggerFactory.cpp rename to FlippR-Driver/src/utility/LoggerFactory.cpp index 0e9f043..d294cec 100644 --- a/FlippR-Driver/src/utilities/LoggerFactory.cpp +++ b/FlippR-Driver/src/utility/LoggerFactory.cpp @@ -10,6 +10,11 @@ #define EASYLOGGING_IS_INITIALIZED INITIALIZE_EASYLOGGINGPP #endif + +namespace FlippR_Driver +{ +namespace utility +{ namespace LoggerFactory { @@ -60,3 +65,6 @@ void CreateOutputLogger(el::Level level) } }; + +} +} \ No newline at end of file diff --git a/FlippR-Driver/src/utilities/LoggerFactory.h b/FlippR-Driver/src/utility/LoggerFactory.h similarity index 55% rename from FlippR-Driver/src/utilities/LoggerFactory.h rename to FlippR-Driver/src/utility/LoggerFactory.h index 90d01c4..cf152f6 100644 --- a/FlippR-Driver/src/utilities/LoggerFactory.h +++ b/FlippR-Driver/src/utility/LoggerFactory.h @@ -10,13 +10,20 @@ #include "config.h" +namespace FlippR_Driver +{ +namespace utility +{ + namespace LoggerFactory { - void CreateInputTestLogger(el::Level level = el::Level::Global); +void CreateInputTestLogger(el::Level level = el::Level::Global); - void CreateInputLogger(el::Level level = el::Level::Info); +void CreateInputLogger(el::Level level = el::Level::Info); - void CreateOutputLogger(el::Level level = el::Level::Info); +void CreateOutputLogger(el::Level level = el::Level::Info); }; +} +} #endif \ No newline at end of file diff --git a/FlippR-Driver/src/utilities/OutputGPIOInterface.h b/FlippR-Driver/src/utility/OutputGPIOInterface.h similarity index 82% rename from FlippR-Driver/src/utilities/OutputGPIOInterface.h rename to FlippR-Driver/src/utility/OutputGPIOInterface.h index ebccb4b..0c5e86e 100644 --- a/FlippR-Driver/src/utilities/OutputGPIOInterface.h +++ b/FlippR-Driver/src/utility/OutputGPIOInterface.h @@ -11,6 +11,10 @@ #include "GPIOInterface.h" #include +namespace FlippR_Driver +{ +namespace utility +{ class OutputGPIOInterface : GPIOInterface { @@ -21,9 +25,10 @@ public: private: void private: - IBlockingQueue event_queue; + IBlockingQueue event_queue; }; - +} +} #endif \ No newline at end of file diff --git a/FlippR-Driver/src/utilities/config.h b/FlippR-Driver/src/utility/config.h similarity index 100% rename from FlippR-Driver/src/utilities/config.h rename to FlippR-Driver/src/utility/config.h