40 std::vector<AnalyticsEvent> buffer_;
54 const std::map<std::string, std::string>& properties = {});
57 void log(std::string_view name);
71 std::vector<std::unique_ptr<AnalyticsDestination>> destinations_;
74 uint64_t event_count_ = 0;
Abstract destination for analytics events.
Definition analytics.hpp:25
virtual void log_event(const AnalyticsEvent &event)=0
virtual void flush()
Definition analytics.hpp:29
virtual ~AnalyticsDestination()=default
Analytics singleton — thread-safe event logging.
Definition analytics.hpp:45
void set_enabled(bool enabled)
Enable/disable analytics.
Definition analytics.hpp:63
void add_destination(std::unique_ptr< AnalyticsDestination > dest)
Add a destination.
static Analytics & instance()
uint64_t event_count() const
Number of events logged since creation.
Definition analytics.hpp:67
bool is_enabled() const
Definition analytics.hpp:64
void flush()
Flush all destinations.
void log(std::string_view name)
Log a simple event (name only).
void log_event(std::string_view name, const std::map< std::string, std::string > &properties={})
Log an event with properties.
void log_event(const AnalyticsEvent &event) override
FileAnalyticsDestination(std::string_view path)
Definition generated_event_source.hpp:33
Single analytics event.
Definition analytics.hpp:18
double timestamp
Definition analytics.hpp:21
std::string name
Definition analytics.hpp:19
std::map< std::string, std::string > properties
Definition analytics.hpp:20