summaryrefslogtreecommitdiffstats
path: root/control/zone.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'control/zone.cpp')
-rw-r--r--control/zone.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/control/zone.cpp b/control/zone.cpp
index 18fd627..35c7d2b 100644
--- a/control/zone.cpp
+++ b/control/zone.cpp
@@ -73,6 +73,23 @@ void Zone::setSpeed(uint64_t speed)
}
}
+void Zone::setActiveAllow(const Group* group, bool isActiveAllow)
+{
+ _active[group] = isActiveAllow;
+ if (!isActiveAllow)
+ {
+ _isActive = false;
+ }
+ else
+ {
+ // Check all entries are set to allow control active
+ auto actPred = [](auto const& entry) {return entry.second;};
+ _isActive = std::all_of(_active.begin(),
+ _active.end(),
+ actPred);
+ }
+}
+
int Zone::signalHandler(sd_bus_message* msg,
void* data,
sd_bus_error* err)
OpenPOWER on IntegriCloud