Files
flippr-code/FlippR-Driver/include/output/OutputDriver.h
Jonas Zeunert f9edf2f8cc dunno
2018-12-14 13:30:57 +01:00

46 lines
1.3 KiB
C++

/*
* OutputDriver.h
*
* Created on: Aug 2, 2018
* Author: Andreas Schneider, Johannes Wendel, Jonas Zeunert
*/
#ifndef _SRC_OUTPUT_IOUTPUTDRIVER_H_
#define _SRC_OUTPUT_IOUTPUTDRIVER_H_
#include "output/items/impl/Lamp.h"
#include "output/items/Solenoid.h"
#include "output/items/Display.h"
#include "output/items/Sound.h"
#include <vector>
#include <memory>
#include <boost/optional.hpp>
namespace flippR_driver
{
namespace output
{
class OutputDriver
{
public:
virtual ~OutputDriver() = default;
virtual void activate_displays() const = 0;
virtual void deactivate_displays() const = 0;
virtual std::vector<std::shared_ptr<items::Lamp>> get_lamps() const = 0;
virtual std::vector<std::shared_ptr<items::Solenoid>> get_solenoids() const = 0;
virtual std::vector<std::shared_ptr<items::Sound>> get_sounds() const = 0;
virtual std::vector<std::shared_ptr<items::Display>> get_displays() const = 0;
virtual boost::optional<std::shared_ptr<items::Lamp>> get_lamp(const std::string &name) const = 0;
virtual boost::optional<std::shared_ptr<items::Solenoid>> get_solenoid(const std::string &name) const = 0;
virtual boost::optional<std::shared_ptr<items::Sound>> get_sound(const std::string &name) const = 0;
virtual boost::optional<std::shared_ptr<items::Display>> get_display(uint8_t number) const = 0;
};
} /* namespace output */
}
#endif