xref: /openbmc/telemetry/tests/src/stubs/dbus_sensor_object.cpp (revision 583ba441654657bb4ba9d051b747144a7258c159)
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 
DbusSensorObject(boost::asio::io_context & ioc,const std::shared_ptr<sdbusplus::asio::connection> & bus,const std::shared_ptr<sdbusplus::asio::object_server> & objServer)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), bus(bus), objServer(objServer)
18 {
19     sensorIface = objServer->add_unique_interface(
20         path(), interface(), [this](auto& iface) {
21             iface.register_property_r(
22                 property.value(), value,
23                 sdbusplus::vtable::property_::emits_change,
24                 [this](const auto&) { return value; });
25         });
26 }
27 
setValue(double v)28 void DbusSensorObject::setValue(double v)
29 {
30     value = v;
31 
32     sensorIface->signal_property(property.value());
33 }
34 
getValue() const35 double DbusSensorObject::getValue() const
36 {
37     return value;
38 }
39 
path()40 const char* DbusSensorObject::path()
41 {
42     return "/telemetry/ut/DbusSensorObject";
43 }
44 
interface()45 const char* DbusSensorObject::interface()
46 {
47     return "xyz.openbmc_project.Sensor.Value";
48 }
49 
value()50 const char* DbusSensorObject::Properties::value()
51 {
52     return "Value";
53 }
54 
55 } // namespace stubs
56