25 lines
536 B
C++
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
|