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