From c0c5f07f38820184cde4ce5bf55ddaee94fc4199 Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Tue, 30 Oct 2018 19:11:01 -0700 Subject: control/zone: Reference instead of copying timer data Tested: Built and ran through unit tests. Change-Id: I9a98d9a3eaee47885b18b642ffd01a38a864dd02 Signed-off-by: William A. Kennington III --- control/zone.cpp | 8 ++++++-- control/zone.hpp | 3 ++- 2 files changed, 8 insertions(+), 3 deletions(-) (limited to 'control') diff --git a/control/zone.cpp b/control/zone.cpp index ec0f944..1ca0465 100644 --- a/control/zone.cpp +++ b/control/zone.cpp @@ -441,7 +441,10 @@ void Zone::addTimer(const Group& group, ); auto timer = std::make_unique( _eventLoop, - std::bind(&Zone::timerExpired, this, group, actions) + std::bind(&Zone::timerExpired, + this, + std::cref(std::get(*data)), + std::cref(std::get>(*data))) ); if (!timer->running()) { @@ -451,7 +454,8 @@ void Zone::addTimer(const Group& group, _timerEvents.emplace_back(std::move(data), std::move(timer)); } -void Zone::timerExpired(Group eventGroup, std::vector eventActions) +void Zone::timerExpired(const Group& eventGroup, + const std::vector& eventActions) { // Perform the actions std::for_each(eventActions.begin(), diff --git a/control/zone.hpp b/control/zone.hpp index 4f4dfb6..002feb4 100644 --- a/control/zone.hpp +++ b/control/zone.hpp @@ -395,7 +395,8 @@ class Zone * @param[in] eventGroup - Group to process actions on * @param[in] eventActions - List of event actions to run */ - void timerExpired(Group eventGroup, std::vector eventActions); + void timerExpired(const Group& eventGroup, + const std::vector& eventActions); /** * @brief Get the service for a given path and interface from cached -- cgit v1.2.1