blob: c3d41705da2c24af159c3094f16674dd730629e7 [file] [log] [blame]
Krzysztof Grobelnyb5645942020-09-29 11:52:45 +02001#include "dbus_sensor_object.hpp"
2
3#include <boost/asio.hpp>
4#include <sdbusplus/asio/connection.hpp>
5#include <sdbusplus/asio/object_server.hpp>
6#include <sdbusplus/bus.hpp>
7
8namespace stubs
9{
10
11DbusSensorObject::DbusSensorObject(
12 boost::asio::io_context& ioc,
13 const std::shared_ptr<sdbusplus::asio::connection>& bus,
14 const std::shared_ptr<sdbusplus::asio::object_server>& objServer) :
15 ioc(ioc),
16 bus(bus), objServer(objServer)
17{
18 sensorIface = objServer->add_interface(path(), interface());
19
20 sensorIface->register_property_r(property.value(), double{},
21 sdbusplus::vtable::property_::emits_change,
22 [this](const auto&) { return value; });
23
24 sensorIface->initialize();
25}
26
27DbusSensorObject::~DbusSensorObject()
28{
29 objServer->remove_interface(sensorIface);
30}
31
32void DbusSensorObject::setValue(double v)
33{
34 value = v;
35
36 sensorIface->signal_property(property.value());
37}
38
39double DbusSensorObject::getValue() const
40{
41 return value;
42}
43
44const char* DbusSensorObject::path()
45{
46 return "/telemetry/ut/DbusSensorObject";
47}
48
49const char* DbusSensorObject::interface()
50{
51 return "xyz.openbmc_project.Sensor.Value";
52}
53
54const char* DbusSensorObject::Properties::value()
55{
56 return "Value";
57}
58
59} // namespace stubs