blob: 46532a6bd097ac976c81d37f9a82cdfedf92497c [file] [log] [blame]
#pragma once
#include "dbushelper_interface.hpp"
#include "interfaces.hpp"
#include "util.hpp"
#include <sdbusplus/bus.hpp>
#include <memory>
#include <string>
namespace pid_control
{
/*
* This ReadInterface will actively reach out over dbus upon calling read to
* get the value from whomever owns the associated dbus path.
*/
class DbusActiveRead : public ReadInterface
{
public:
DbusActiveRead(sdbusplus::bus_t& bus, const std::string& path,
const std::string& service,
std::unique_ptr<DbusHelperInterface> helper) :
ReadInterface(),
_bus(bus), _path(path), _service(service), _helper(std::move(helper))
{}
ReadReturn read(void) override;
private:
sdbusplus::bus_t& _bus;
const std::string _path;
const std::string _service; // the sensor service.
std::unique_ptr<DbusHelperInterface> _helper;
};
} // namespace pid_control