| OLD | NEW |
| 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 170 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 181 int64_t max_size_bytes) { | 181 int64_t max_size_bytes) { |
| 182 RTC_DCHECK(thread_checker_.CalledOnValidThread()); | 182 RTC_DCHECK(thread_checker_.CalledOnValidThread()); |
| 183 RtcEventLogHelperThread::ControlMessage message; | 183 RtcEventLogHelperThread::ControlMessage message; |
| 184 message.message_type = RtcEventLogHelperThread::ControlMessage::START_FILE; | 184 message.message_type = RtcEventLogHelperThread::ControlMessage::START_FILE; |
| 185 message.max_size_bytes = max_size_bytes <= 0 | 185 message.max_size_bytes = max_size_bytes <= 0 |
| 186 ? std::numeric_limits<int64_t>::max() | 186 ? std::numeric_limits<int64_t>::max() |
| 187 : max_size_bytes; | 187 : max_size_bytes; |
| 188 message.start_time = clock_->TimeInMicroseconds(); | 188 message.start_time = clock_->TimeInMicroseconds(); |
| 189 message.stop_time = std::numeric_limits<int64_t>::max(); | 189 message.stop_time = std::numeric_limits<int64_t>::max(); |
| 190 message.file.reset(FileWrapper::Create()); | 190 message.file.reset(FileWrapper::Create()); |
| 191 if (message.file->OpenFile(file_name.c_str(), false) != 0) { | 191 if (!message.file->OpenFile(file_name.c_str(), false)) { |
| 192 LOG(LS_ERROR) << "Can't open file. WebRTC event log not started."; | 192 LOG(LS_ERROR) << "Can't open file. WebRTC event log not started."; |
| 193 return false; | 193 return false; |
| 194 } | 194 } |
| 195 if (!message_queue_.Insert(&message)) { | 195 if (!message_queue_.Insert(&message)) { |
| 196 LOG(LS_ERROR) << "Message queue full. Can't start logging."; | 196 LOG(LS_ERROR) << "Message queue full. Can't start logging."; |
| 197 return false; | 197 return false; |
| 198 } | 198 } |
| 199 helper_thread_.SignalNewEvent(); | 199 helper_thread_.SignalNewEvent(); |
| 200 LOG(LS_INFO) << "Starting WebRTC event log."; | 200 LOG(LS_INFO) << "Starting WebRTC event log."; |
| 201 return true; | 201 return true; |
| (...skipping 13 matching lines...) Expand all Loading... |
| 215 FILE* file_handle = rtc::FdopenPlatformFileForWriting(platform_file); | 215 FILE* file_handle = rtc::FdopenPlatformFileForWriting(platform_file); |
| 216 if (!file_handle) { | 216 if (!file_handle) { |
| 217 LOG(LS_ERROR) << "Can't open file. WebRTC event log not started."; | 217 LOG(LS_ERROR) << "Can't open file. WebRTC event log not started."; |
| 218 // Even though we failed to open a FILE*, the platform_file is still open | 218 // Even though we failed to open a FILE*, the platform_file is still open |
| 219 // and needs to be closed. | 219 // and needs to be closed. |
| 220 if (!rtc::ClosePlatformFile(platform_file)) { | 220 if (!rtc::ClosePlatformFile(platform_file)) { |
| 221 LOG(LS_ERROR) << "Can't close file."; | 221 LOG(LS_ERROR) << "Can't close file."; |
| 222 } | 222 } |
| 223 return false; | 223 return false; |
| 224 } | 224 } |
| 225 if (message.file->OpenFromFileHandle(file_handle, true, false) != 0) { | 225 if (!message.file->OpenFromFileHandle(file_handle)) { |
| 226 LOG(LS_ERROR) << "Can't open file. WebRTC event log not started."; | 226 LOG(LS_ERROR) << "Can't open file. WebRTC event log not started."; |
| 227 return false; | 227 return false; |
| 228 } | 228 } |
| 229 if (!message_queue_.Insert(&message)) { | 229 if (!message_queue_.Insert(&message)) { |
| 230 LOG(LS_ERROR) << "Message queue full. Can't start logging."; | 230 LOG(LS_ERROR) << "Message queue full. Can't start logging."; |
| 231 return false; | 231 return false; |
| 232 } | 232 } |
| 233 helper_thread_.SignalNewEvent(); | 233 helper_thread_.SignalNewEvent(); |
| 234 LOG(LS_INFO) << "Starting WebRTC event log."; | 234 LOG(LS_INFO) << "Starting WebRTC event log."; |
| 235 return true; | 235 return true; |
| (...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 436 LOG(LS_ERROR) << "WebRTC event log queue full. Dropping event."; | 436 LOG(LS_ERROR) << "WebRTC event log queue full. Dropping event."; |
| 437 } | 437 } |
| 438 helper_thread_.SignalNewEvent(); | 438 helper_thread_.SignalNewEvent(); |
| 439 } | 439 } |
| 440 | 440 |
| 441 bool RtcEventLog::ParseRtcEventLog(const std::string& file_name, | 441 bool RtcEventLog::ParseRtcEventLog(const std::string& file_name, |
| 442 rtclog::EventStream* result) { | 442 rtclog::EventStream* result) { |
| 443 char tmp_buffer[1024]; | 443 char tmp_buffer[1024]; |
| 444 int bytes_read = 0; | 444 int bytes_read = 0; |
| 445 std::unique_ptr<FileWrapper> dump_file(FileWrapper::Create()); | 445 std::unique_ptr<FileWrapper> dump_file(FileWrapper::Create()); |
| 446 if (dump_file->OpenFile(file_name.c_str(), true) != 0) { | 446 if (!dump_file->OpenFile(file_name.c_str(), true)) { |
| 447 return false; | 447 return false; |
| 448 } | 448 } |
| 449 std::string dump_buffer; | 449 std::string dump_buffer; |
| 450 while ((bytes_read = dump_file->Read(tmp_buffer, sizeof(tmp_buffer))) > 0) { | 450 while ((bytes_read = dump_file->Read(tmp_buffer, sizeof(tmp_buffer))) > 0) { |
| 451 dump_buffer.append(tmp_buffer, bytes_read); | 451 dump_buffer.append(tmp_buffer, bytes_read); |
| 452 } | 452 } |
| 453 dump_file->CloseFile(); | 453 dump_file->CloseFile(); |
| 454 return result->ParseFromString(dump_buffer); | 454 return result->ParseFromString(dump_buffer); |
| 455 } | 455 } |
| 456 | 456 |
| 457 #endif // ENABLE_RTC_EVENT_LOG | 457 #endif // ENABLE_RTC_EVENT_LOG |
| 458 | 458 |
| 459 // RtcEventLog member functions. | 459 // RtcEventLog member functions. |
| 460 std::unique_ptr<RtcEventLog> RtcEventLog::Create(const Clock* clock) { | 460 std::unique_ptr<RtcEventLog> RtcEventLog::Create(const Clock* clock) { |
| 461 #ifdef ENABLE_RTC_EVENT_LOG | 461 #ifdef ENABLE_RTC_EVENT_LOG |
| 462 return std::unique_ptr<RtcEventLog>(new RtcEventLogImpl(clock)); | 462 return std::unique_ptr<RtcEventLog>(new RtcEventLogImpl(clock)); |
| 463 #else | 463 #else |
| 464 return std::unique_ptr<RtcEventLog>(new RtcEventLogNullImpl()); | 464 return std::unique_ptr<RtcEventLog>(new RtcEventLogNullImpl()); |
| 465 #endif // ENABLE_RTC_EVENT_LOG | 465 #endif // ENABLE_RTC_EVENT_LOG |
| 466 } | 466 } |
| 467 | 467 |
| 468 } // namespace webrtc | 468 } // namespace webrtc |
| OLD | NEW |