// Generic class that handles event logging for the cast library.
// Logging has three possible optional forms:
// 1. Raw data and stats accessible by the application.
-// 2. UMA stats.
-// 3. Tracing of raw events.
+// 2. Tracing of raw events.
#include "base/memory/ref_counted.h"
-#include "base/task_runner.h"
+#include "base/single_thread_task_runner.h"
#include "media/cast/cast_config.h"
#include "media/cast/logging/logging_defines.h"
#include "media/cast/logging/logging_raw.h"
// Should only be called from the main thread.
class LoggingImpl : public base::NonThreadSafe {
public:
- LoggingImpl(scoped_refptr<base::TaskRunner> main_thread_proxy,
+ LoggingImpl(scoped_refptr<base::SingleThreadTaskRunner> main_thread_proxy,
const CastLoggingConfig& config);
~LoggingImpl();
void InsertFrameEvent(const base::TimeTicks& time_of_event,
- CastLoggingEvent event,
- uint32 rtp_timestamp,
+ CastLoggingEvent event, uint32 rtp_timestamp,
uint32 frame_id);
void InsertFrameEventWithSize(const base::TimeTicks& time_of_event,
- CastLoggingEvent event,
- uint32 rtp_timestamp,
- uint32 frame_id,
- int frame_size);
+ CastLoggingEvent event, uint32 rtp_timestamp,
+ uint32 frame_id, int frame_size);
void InsertFrameEventWithDelay(const base::TimeTicks& time_of_event,
- CastLoggingEvent event,
- uint32 rtp_timestamp,
- uint32 frame_id,
- base::TimeDelta delay);
+ CastLoggingEvent event, uint32 rtp_timestamp,
+ uint32 frame_id, base::TimeDelta delay);
void InsertPacketListEvent(const base::TimeTicks& time_of_event,
- CastLoggingEvent event,
- const PacketList& packets);
+ CastLoggingEvent event, const PacketList& packets);
void InsertPacketEvent(const base::TimeTicks& time_of_event,
- CastLoggingEvent event,
- uint32 rtp_timestamp,
- uint32 frame_id,
- uint16 packet_id,
- uint16 max_packet_id,
- size_t size);
+ CastLoggingEvent event, uint32 rtp_timestamp,
+ uint32 frame_id, uint16 packet_id,
+ uint16 max_packet_id, size_t size);
void InsertGenericEvent(const base::TimeTicks& time_of_event,
- CastLoggingEvent event,
- int value);
-
- // Get raw data.
- FrameRawMap GetFrameRawData();
- PacketRawMap GetPacketRawData();
- GenericRawMap GetGenericRawData();
- AudioRtcpRawMap GetAudioRtcpRawData();
- VideoRtcpRawMap GetVideoRtcpRawData();
-
- // Get stats only (computed when called). Triggers UMA stats when enabled.
- const FrameStatsMap* GetFrameStatsData(const base::TimeTicks& now);
- const PacketStatsMap* GetPacketStatsData(const base::TimeTicks& now);
- const GenericStatsMap* GetGenericStatsData();
-
- // Reset raw logging data.
- void ResetRaw();
+ CastLoggingEvent event, int value);
+
+
+ // Delegates to |LoggingRaw::AddRawEventSubscriber()|.
+ void AddRawEventSubscriber(RawEventSubscriber* subscriber);
+
+ // Delegates to |LoggingRaw::RemoveRawEventSubscriber()|.
+ void RemoveRawEventSubscriber(RawEventSubscriber* subscriber);
+
+ // Get stats only.
+ FrameStatsMap GetFrameStatsData() const;
+ PacketStatsMap GetPacketStatsData() const;
+ GenericStatsMap GetGenericStatsData() const;
+
// Reset stats logging data.
void ResetStats();
private:
- void InsertGenericUmaEvent(CastLoggingEvent event, int value);
- scoped_refptr<base::TaskRunner> main_thread_proxy_;
+ scoped_refptr<base::SingleThreadTaskRunner> main_thread_proxy_;
const CastLoggingConfig config_;
LoggingRaw raw_;
LoggingStats stats_;