dbus: Move findSensors to dbus util
Signed-off-by: Patrick Venture <venture@google.com>
Change-Id: I2ba4d3c430200eb58cb4364dcce694a080531846
diff --git a/dbus/dbusutil.cpp b/dbus/dbusutil.cpp
index 7545eed..6cdad14 100644
--- a/dbus/dbusutil.cpp
+++ b/dbus/dbusutil.cpp
@@ -4,9 +4,13 @@
#include <cstdint>
#include <iostream>
#include <map>
+#include <regex>
#include <set>
#include <string>
+#include <unordered_map>
+#include <utility>
#include <variant>
+#include <vector>
using Property = std::string;
using Value = std::variant<int64_t, double, std::string, bool>;
@@ -15,6 +19,22 @@
namespace pid_control
{
+bool findSensors(const std::unordered_map<std::string, std::string>& sensors,
+ const std::string& search,
+ std::vector<std::pair<std::string, std::string>>& matches)
+{
+ std::smatch match;
+ std::regex reg(search + '$');
+ for (const auto& sensor : sensors)
+ {
+ if (std::regex_search(sensor.first, match, reg))
+ {
+ matches.push_back(sensor);
+ }
+ }
+ return matches.size() > 0;
+}
+
std::string getSensorPath(const std::string& type, const std::string& id)
{
std::string layer = type;