#ifndef GPIO_HPP_ #define GPIO_HPP_ class gpio { public: enum class pin_direction { INPUT, OUTPUT }; enum class pin_type { HIGH_ON, LOW_ON }; private: int pin; pin_direction direction; pin_type type; bool current_state; void set_value(bool on, bool use_cache); public: gpio(int pin, pin_direction, pin_type=pin_type::HIGH_ON, bool default_state=false); gpio(const gpio&) = delete; gpio(gpio&&); ~gpio(); void set_value(bool on); bool get_value(); int get_pin() const; }; #endif