extended interface

This commit is contained in:
Jonas Zeunert
2018-12-07 14:47:28 +01:00
parent dc0dfd732a
commit d25c030152
4 changed files with 34 additions and 23 deletions

View File

@@ -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 <vector>
#include <memory>
#include <boost/optional.hpp>
namespace flippR_driver
{
namespace output
@@ -16,8 +25,17 @@ namespace output
class IOutputDriver
{
public:
IOutputDriver();
virtual ~IOutputDriver();
virtual ~IOutputDriver() = default;
virtual std::vector<std::shared_ptr<items::ILamp>> get_lamps() = 0;
virtual std::vector<std::shared_ptr<items::ISolenoid>> get_solenoids() = 0;
virtual std::vector<std::shared_ptr<items::ISound>> get_sounds() = 0;
virtual std::vector<std::shared_ptr<items::IDisplay>> get_displays() = 0;
virtual boost::optional<std::shared_ptr<items::ILamp>> get_lamp(std::string name) = 0;
virtual boost::optional<std::shared_ptr<items::ISolenoid>> get_solenoid(std::string name) = 0;
virtual boost::optional<std::shared_ptr<items::ISound>> get_sound(std::string name) = 0;
virtual boost::optional<std::shared_ptr<items::IDisplay>> get_display(char number) = 0;
};
} /* namespace output */