Files
comaps/libs/platform/battery_tracker.hpp
Konstantin Pastbin bfffa1fff4 Format all C++ and Java code via clang-format
Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
2025-08-17 14:32:37 +07:00

35 lines
675 B
C++

#pragma once
#include <chrono>
#include <cstdint>
#include <vector>
namespace platform
{
// Note: this class is NOT thread-safe.
class BatteryLevelTracker
{
public:
class Subscriber
{
public:
virtual void OnBatteryLevelReceived(uint8_t level) = 0;
protected:
virtual ~Subscriber() = default;
};
void Subscribe(Subscriber * subscriber);
void Unsubscribe(Subscriber * subscriber);
void UnsubscribeAll();
private:
void RequestBatteryLevel();
std::vector<Subscriber *> m_subscribers;
std::chrono::system_clock::time_point m_lastRequestTime;
uint8_t m_lastReceivedLevel = 0;
bool m_isTrackingInProgress = false;
};
} // namespace platform