Remove Unused AsTextButtonBorder RTTI helper.
[chromium-blink-merge.git] / media / cast / logging / logging_impl.h
blobef2cb92f4a1f5e3cb66a02277a44aabb32b206d9
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 #ifndef MEDIA_CAST_LOGGING_LOGGING_IMPL_H_
5 #define MEDIA_CAST_LOGGING_LOGGING_IMPL_H_
7 // Generic class that handles event logging for the cast library.
8 // Logging has three possible optional forms:
9 // 1. Raw data and stats accessible by the application.
10 // 2. Tracing of raw events.
12 #include "base/memory/ref_counted.h"
13 #include "base/single_thread_task_runner.h"
14 #include "media/cast/cast_config.h"
15 #include "media/cast/logging/logging_defines.h"
16 #include "media/cast/logging/logging_raw.h"
17 #include "media/cast/logging/logging_stats.h"
19 namespace media {
20 namespace cast {
22 // Should only be called from the main thread.
23 class LoggingImpl : public base::NonThreadSafe {
24 public:
25 LoggingImpl(scoped_refptr<base::SingleThreadTaskRunner> main_thread_proxy,
26 const CastLoggingConfig& config);
28 ~LoggingImpl();
30 void InsertFrameEvent(const base::TimeTicks& time_of_event,
31 CastLoggingEvent event, uint32 rtp_timestamp,
32 uint32 frame_id);
34 void InsertFrameEventWithSize(const base::TimeTicks& time_of_event,
35 CastLoggingEvent event, uint32 rtp_timestamp,
36 uint32 frame_id, int frame_size);
38 void InsertFrameEventWithDelay(const base::TimeTicks& time_of_event,
39 CastLoggingEvent event, uint32 rtp_timestamp,
40 uint32 frame_id, base::TimeDelta delay);
42 void InsertPacketListEvent(const base::TimeTicks& time_of_event,
43 CastLoggingEvent event, const PacketList& packets);
45 void InsertPacketEvent(const base::TimeTicks& time_of_event,
46 CastLoggingEvent event, uint32 rtp_timestamp,
47 uint32 frame_id, uint16 packet_id,
48 uint16 max_packet_id, size_t size);
50 void InsertGenericEvent(const base::TimeTicks& time_of_event,
51 CastLoggingEvent event, int value);
54 // Delegates to |LoggingRaw::AddRawEventSubscriber()|.
55 void AddRawEventSubscriber(RawEventSubscriber* subscriber);
57 // Delegates to |LoggingRaw::RemoveRawEventSubscriber()|.
58 void RemoveRawEventSubscriber(RawEventSubscriber* subscriber);
60 // Get stats only.
61 FrameStatsMap GetFrameStatsData() const;
62 PacketStatsMap GetPacketStatsData() const;
63 GenericStatsMap GetGenericStatsData() const;
65 // Reset stats logging data.
66 void ResetStats();
68 private:
69 scoped_refptr<base::SingleThreadTaskRunner> main_thread_proxy_;
70 const CastLoggingConfig config_;
71 LoggingRaw raw_;
72 LoggingStats stats_;
74 DISALLOW_COPY_AND_ASSIGN(LoggingImpl);
77 } // namespace cast
78 } // namespace media
80 #endif // MEDIA_CAST_LOGGING_LOGGING_IMPL_H_