Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(107)

Side by Side Diff: webrtc/logging/rtc_event_log/rtc_event_log.cc

Issue 3014503002: RtcEventLog::Create() no longer a friend of RtcEventLogImpl (Closed)
Patch Set: Piggyback namespace change. Created 3 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2015 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2015 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
89 89
90 bool Run() override { 90 bool Run() override {
91 handler_(std::move(resource_)); 91 handler_(std::move(resource_));
92 return true; 92 return true;
93 } 93 }
94 94
95 private: 95 private:
96 std::unique_ptr<T> resource_; 96 std::unique_ptr<T> resource_;
97 std::function<void(std::unique_ptr<T>)> handler_; 97 std::function<void(std::unique_ptr<T>)> handler_;
98 }; 98 };
99 } // namespace
100 99
101 class RtcEventLogImpl final : public RtcEventLog { 100 class RtcEventLogImpl final : public RtcEventLog {
102 friend std::unique_ptr<RtcEventLog> RtcEventLog::Create();
103
104 public: 101 public:
102 RtcEventLogImpl();
105 ~RtcEventLogImpl() override; 103 ~RtcEventLogImpl() override;
106 104
107 bool StartLogging(const std::string& file_name, 105 bool StartLogging(const std::string& file_name,
108 int64_t max_size_bytes) override; 106 int64_t max_size_bytes) override;
109 bool StartLogging(rtc::PlatformFile platform_file, 107 bool StartLogging(rtc::PlatformFile platform_file,
110 int64_t max_size_bytes) override; 108 int64_t max_size_bytes) override;
111 void StopLogging() override; 109 void StopLogging() override;
112 void LogVideoReceiveStreamConfig(const rtclog::StreamConfig& config) override; 110 void LogVideoReceiveStreamConfig(const rtclog::StreamConfig& config) override;
113 void LogVideoSendStreamConfig(const rtclog::StreamConfig& config) override; 111 void LogVideoSendStreamConfig(const rtclog::StreamConfig& config) override;
114 void LogAudioReceiveStreamConfig(const rtclog::StreamConfig& config) override; 112 void LogAudioReceiveStreamConfig(const rtclog::StreamConfig& config) override;
(...skipping 21 matching lines...) Expand all
136 int min_probes, 134 int min_probes,
137 int min_bytes) override; 135 int min_bytes) override;
138 void LogProbeResultSuccess(int id, int bitrate_bps) override; 136 void LogProbeResultSuccess(int id, int bitrate_bps) override;
139 void LogProbeResultFailure(int id, 137 void LogProbeResultFailure(int id,
140 ProbeFailureReason failure_reason) override; 138 ProbeFailureReason failure_reason) override;
141 139
142 private: 140 private:
143 void StartLoggingInternal(std::unique_ptr<FileWrapper> file, 141 void StartLoggingInternal(std::unique_ptr<FileWrapper> file,
144 int64_t max_size_bytes); 142 int64_t max_size_bytes);
145 143
146 RtcEventLogImpl(); // Creation is done by RtcEventLog::Create.
147
148 void StoreEvent(std::unique_ptr<rtclog::Event> event); 144 void StoreEvent(std::unique_ptr<rtclog::Event> event);
149 void LogProbeResult(int id, 145 void LogProbeResult(int id,
150 rtclog::BweProbeResult::ResultType result, 146 rtclog::BweProbeResult::ResultType result,
151 int bitrate_bps); 147 int bitrate_bps);
152 148
153 // Appends an event to the output protobuf string, returning true on success. 149 // Appends an event to the output protobuf string, returning true on success.
154 // Fails and returns false in case the limit on output size prevents the 150 // Fails and returns false in case the limit on output size prevents the
155 // event from being added; in this case, the output string is left unchanged. 151 // event from being added; in this case, the output string is left unchanged.
156 bool AppendEventToString(rtclog::Event* event, 152 bool AppendEventToString(rtclog::Event* event,
157 ProtoString* output_string) RTC_WARN_UNUSED_RESULT; 153 ProtoString* output_string) RTC_WARN_UNUSED_RESULT;
(...skipping 21 matching lines...) Expand all
179 size_t max_size_bytes_ RTC_ACCESS_ON(task_queue_); 175 size_t max_size_bytes_ RTC_ACCESS_ON(task_queue_);
180 size_t written_bytes_ RTC_ACCESS_ON(task_queue_); 176 size_t written_bytes_ RTC_ACCESS_ON(task_queue_);
181 177
182 // Keep this last to ensure it destructs first, or else tasks living on the 178 // Keep this last to ensure it destructs first, or else tasks living on the
183 // queue might access other members after they've been torn down. 179 // queue might access other members after they've been torn down.
184 rtc::TaskQueue task_queue_; 180 rtc::TaskQueue task_queue_;
185 181
186 RTC_DISALLOW_COPY_AND_ASSIGN(RtcEventLogImpl); 182 RTC_DISALLOW_COPY_AND_ASSIGN(RtcEventLogImpl);
187 }; 183 };
188 184
189 namespace {
190 // The functions in this namespace convert enums from the runtime format
191 // that the rest of the WebRtc project can use, to the corresponding
192 // serialized enum which is defined by the protobuf.
193
194 rtclog::VideoReceiveConfig_RtcpMode ConvertRtcpMode(RtcpMode rtcp_mode) { 185 rtclog::VideoReceiveConfig_RtcpMode ConvertRtcpMode(RtcpMode rtcp_mode) {
195 switch (rtcp_mode) { 186 switch (rtcp_mode) {
196 case RtcpMode::kCompound: 187 case RtcpMode::kCompound:
197 return rtclog::VideoReceiveConfig::RTCP_COMPOUND; 188 return rtclog::VideoReceiveConfig::RTCP_COMPOUND;
198 case RtcpMode::kReducedSize: 189 case RtcpMode::kReducedSize:
199 return rtclog::VideoReceiveConfig::RTCP_REDUCEDSIZE; 190 return rtclog::VideoReceiveConfig::RTCP_REDUCEDSIZE;
200 case RtcpMode::kOff: 191 case RtcpMode::kOff:
201 RTC_NOTREACHED(); 192 RTC_NOTREACHED();
202 return rtclog::VideoReceiveConfig::RTCP_COMPOUND; 193 return rtclog::VideoReceiveConfig::RTCP_COMPOUND;
203 } 194 }
(...skipping 605 matching lines...) Expand 10 before | Expand all | Expand 10 after
809 // RtcEventLog member functions. 800 // RtcEventLog member functions.
810 std::unique_ptr<RtcEventLog> RtcEventLog::Create() { 801 std::unique_ptr<RtcEventLog> RtcEventLog::Create() {
811 #ifdef ENABLE_RTC_EVENT_LOG 802 #ifdef ENABLE_RTC_EVENT_LOG
812 // TODO(eladalon): Known issue - there's a race over |rtc_event_log_count|. 803 // TODO(eladalon): Known issue - there's a race over |rtc_event_log_count|.
813 constexpr int kMaxLogCount = 5; 804 constexpr int kMaxLogCount = 5;
814 int count = 1 + std::atomic_fetch_add(&rtc_event_log_count, 1); 805 int count = 1 + std::atomic_fetch_add(&rtc_event_log_count, 1);
815 if (count > kMaxLogCount) { 806 if (count > kMaxLogCount) {
816 LOG(LS_WARNING) << "Denied creation of additional WebRTC event logs. " 807 LOG(LS_WARNING) << "Denied creation of additional WebRTC event logs. "
817 << count - 1 << " logs open already."; 808 << count - 1 << " logs open already.";
818 std::atomic_fetch_sub(&rtc_event_log_count, 1); 809 std::atomic_fetch_sub(&rtc_event_log_count, 1);
819 return std::unique_ptr<RtcEventLog>(new RtcEventLogNullImpl()); 810 return CreateNull();
820 } 811 }
821 return std::unique_ptr<RtcEventLog>(new RtcEventLogImpl()); 812 return rtc::MakeUnique<RtcEventLogImpl>();
822 #else 813 #else
823 return CreateNull(); 814 return CreateNull();
824 #endif // ENABLE_RTC_EVENT_LOG 815 #endif // ENABLE_RTC_EVENT_LOG
825 } 816 }
826 817
827 std::unique_ptr<RtcEventLog> RtcEventLog::CreateNull() { 818 std::unique_ptr<RtcEventLog> RtcEventLog::CreateNull() {
828 return std::unique_ptr<RtcEventLog>(new RtcEventLogNullImpl()); 819 return std::unique_ptr<RtcEventLog>(new RtcEventLogNullImpl());
829 } 820 }
830 821
831 } // namespace webrtc 822 } // namespace webrtc
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698