summaryrefslogtreecommitdiffstats
path: root/control/manager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'control/manager.cpp')
-rw-r--r--control/manager.cpp19
1 files changed, 16 insertions, 3 deletions
diff --git a/control/manager.cpp b/control/manager.cpp
index c99f4a3..360239c 100644
--- a/control/manager.cpp
+++ b/control/manager.cpp
@@ -14,6 +14,8 @@
* limitations under the License.
*/
#include <algorithm>
+#include <experimental/filesystem>
+#include <sdbusplus/bus.hpp>
#include <phosphor-logging/log.hpp>
#include <phosphor-logging/elog.hpp>
#include <phosphor-logging/elog-errors.hpp>
@@ -32,6 +34,7 @@ namespace control
{
using namespace phosphor::logging;
+namespace fs = std::experimental::filesystem;
constexpr auto SYSTEMD_SERVICE = "org.freedesktop.systemd1";
constexpr auto SYSTEMD_OBJ_PATH = "/org/freedesktop/systemd1";
@@ -78,7 +81,8 @@ bool checkCondition(sdbusplus::bus::bus& bus, const Condition& c)
Manager::Manager(sdbusplus::bus::bus& bus,
const sdeventplus::Event& event,
Mode mode) :
- _bus(bus)
+ _bus(bus),
+ _objMgr(bus, CONTROL_OBJPATH)
{
//Create the appropriate Zone objects based on the
//actual system configuration.
@@ -99,15 +103,24 @@ Manager::Manager(sdbusplus::bus::bus& bus,
for (auto& z : zones)
{
+ fs::path path{CONTROL_OBJPATH};
+ path /= std::to_string(std::get<zoneNumPos>(z));
_zones.emplace(std::get<zoneNumPos>(z),
- std::make_unique<Zone>(mode, _bus, event, z));
+ std::make_unique<Zone>(mode,
+ _bus,
+ path.string(),
+ event,
+ z));
}
break;
}
}
- bus.request_name(CONTROL_BUSNAME);
+ if (mode == Mode::control)
+ {
+ bus.request_name(CONTROL_BUSNAME);
+ }
}
OpenPOWER on IntegriCloud