diff options
Diffstat (limited to 'presence/psensor.hpp')
-rw-r--r-- | presence/psensor.hpp | 20 |
1 files changed, 19 insertions, 1 deletions
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 @@ class PresenceSensor PresenceSensor(PresenceSensor&&) = default; PresenceSensor& operator=(PresenceSensor&&) = default; virtual ~PresenceSensor() = default; - PresenceSensor() = default; + PresenceSensor() : id(nextId) + { + nextId++; + } /** * @brief start @@ -70,8 +74,22 @@ class PresenceSensor * 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 |