presence: Add sensor comparison
Add a basic comparison operator for presence sensors.
Change-Id: Ib147fd24f6e9ea1daf5f2b0b71943e0b4c96a8b7
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
diff --git a/presence/psensor.hpp b/presence/psensor.hpp
index 096c96c..7afbd75 100644
--- a/presence/psensor.hpp
+++ b/presence/psensor.hpp
@@ -1,4 +1,5 @@
#pragma once
+#include <cstdint>
namespace phosphor
{
@@ -26,7 +27,10 @@
PresenceSensor(PresenceSensor&&) = default;
PresenceSensor& operator=(PresenceSensor&&) = default;
virtual ~PresenceSensor() = default;
- PresenceSensor() = default;
+ PresenceSensor() : id(nextId)
+ {
+ nextId++;
+ }
/**
* @brief start
@@ -70,8 +74,22 @@
* Provide a default noop implementation.
*/
virtual void fail() {}
+
+ friend bool operator==(const PresenceSensor& l, const PresenceSensor& r);
+
+ private:
+ /** @brief Unique sensor ID. */
+ std::size_t id;
+
+ /** @brief The next unique sensor ID. */
+ static std::size_t nextId;
};
+inline bool operator==(const PresenceSensor& l, const PresenceSensor &r)
+{
+ return l.id == r.id;
+}
+
} // namespace presence
} // namespace fan
} // namespace phosphor