blob: 1eb6571096fab6c05d11cd12c689576bab84b34f [file] [log] [blame]
Patrick Venture863b9242018-03-08 08:29:23 -08001#pragma once
2
3#include <memory>
4#include <string>
5
6#include <sdbusplus/bus.hpp>
7
8#include "interfaces.hpp"
9#include "sensor.hpp"
10
11
12/*
13 * A Sensor that can use any reader or writer you provide.
14 */
15class PluggableSensor : public Sensor
16{
17 public:
18 PluggableSensor(const std::string& name,
19 int64_t timeout,
20 std::unique_ptr<ReadInterface> reader,
21 std::unique_ptr<WriteInterface> writer)
22 : Sensor(name, timeout),
23 _reader(std::move(reader)),
24 _writer(std::move(writer))
25 { }
26
27 ReadReturn read(void) override;
28 void write(double value) override;
29
30 private:
31 std::unique_ptr<ReadInterface> _reader;
32 std::unique_ptr<WriteInterface> _writer;
33};