telemetry/demo/interfaces/analytics_source.hpp
2025-09-24 19:52:20 +00:00

25 lines
536 B
C++

#pragma once
#include <chrono>
#include <optional>
#include <string>
#include "datapoint/analytics_event.hpp"
namespace djm::device {
class AnalyticsSource {
public:
virtual ~AnalyticsSource() noexcept = default;
/**
* Yields an analytics event if any is available, otherwise blocks until
* `timeout` expires and returns Nothing. Multiple analytics event may queue
* in the background.
*/
virtual std::optional<AnalyticsEvent> await(
std::chrono::milliseconds timeout) = 0;
};
} // namespace djm::device