| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2012 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 26 matching lines...) Expand all Loading... |
| 37 volatile int Trace::level_filter_ = kTraceDefault; | 37 volatile int Trace::level_filter_ = kTraceDefault; |
| 38 | 38 |
| 39 // Construct On First Use idiom. Avoids "static initialization order fiasco". | 39 // Construct On First Use idiom. Avoids "static initialization order fiasco". |
| 40 TraceImpl* TraceImpl::StaticInstance(CountOperation count_operation, | 40 TraceImpl* TraceImpl::StaticInstance(CountOperation count_operation, |
| 41 const TraceLevel level) { | 41 const TraceLevel level) { |
| 42 // Sanities to avoid taking lock unless absolutely necessary (for | 42 // Sanities to avoid taking lock unless absolutely necessary (for |
| 43 // performance reasons). count_operation == kAddRefNoCreate implies that a | 43 // performance reasons). count_operation == kAddRefNoCreate implies that a |
| 44 // message will be written to file. | 44 // message will be written to file. |
| 45 if ((level != kTraceAll) && (count_operation == kAddRefNoCreate)) { | 45 if ((level != kTraceAll) && (count_operation == kAddRefNoCreate)) { |
| 46 if (!(level & level_filter())) { | 46 if (!(level & level_filter())) { |
| 47 return NULL; | 47 return nullptr; |
| 48 } | 48 } |
| 49 } | 49 } |
| 50 TraceImpl* impl = | 50 TraceImpl* impl = |
| 51 GetStaticInstance<TraceImpl>(count_operation); | 51 GetStaticInstance<TraceImpl>(count_operation); |
| 52 return impl; | 52 return impl; |
| 53 } | 53 } |
| 54 | 54 |
| 55 TraceImpl* TraceImpl::GetTrace(const TraceLevel level) { | 55 TraceImpl* TraceImpl::GetTrace(const TraceLevel level) { |
| 56 return StaticInstance(kAddRefNoCreate, level); | 56 return StaticInstance(kAddRefNoCreate, level); |
| 57 } | 57 } |
| 58 | 58 |
| 59 TraceImpl* TraceImpl::CreateInstance() { | 59 TraceImpl* TraceImpl::CreateInstance() { |
| 60 #if defined(_WIN32) | 60 #if defined(_WIN32) |
| 61 return new TraceWindows(); | 61 return new TraceWindows(); |
| 62 #else | 62 #else |
| 63 return new TracePosix(); | 63 return new TracePosix(); |
| 64 #endif | 64 #endif |
| 65 } | 65 } |
| 66 | 66 |
| 67 TraceImpl::TraceImpl() | 67 TraceImpl::TraceImpl() |
| 68 : callback_(NULL), | 68 : callback_(nullptr), |
| 69 row_count_text_(0), | 69 row_count_text_(0), |
| 70 file_count_text_(0), | 70 file_count_text_(0), |
| 71 trace_file_(FileWrapper::Create()) { | 71 trace_file_(FileWrapper::Create()) {} |
| 72 } | |
| 73 | 72 |
| 74 TraceImpl::~TraceImpl() { | 73 TraceImpl::~TraceImpl() { |
| 75 trace_file_->CloseFile(); | 74 trace_file_->CloseFile(); |
| 76 } | 75 } |
| 77 | 76 |
| 78 int32_t TraceImpl::AddThreadId(char* trace_message) const { | 77 int32_t TraceImpl::AddThreadId(char* trace_message) const { |
| 79 uint32_t thread_id = rtc::CurrentThreadId(); | 78 uint32_t thread_id = rtc::CurrentThreadId(); |
| 80 // Messages is 12 characters. | 79 // Messages is 12 characters. |
| 81 return sprintf(trace_message, "%10u; ", thread_id); | 80 return sprintf(trace_message, "%10u; ", thread_id); |
| 82 } | 81 } |
| (...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 319 } | 318 } |
| 320 | 319 |
| 321 int32_t TraceImpl::AddMessage( | 320 int32_t TraceImpl::AddMessage( |
| 322 char* trace_message, | 321 char* trace_message, |
| 323 const char msg[WEBRTC_TRACE_MAX_MESSAGE_SIZE], | 322 const char msg[WEBRTC_TRACE_MAX_MESSAGE_SIZE], |
| 324 const uint16_t written_so_far) const { | 323 const uint16_t written_so_far) const { |
| 325 int length = 0; | 324 int length = 0; |
| 326 if (written_so_far >= WEBRTC_TRACE_MAX_MESSAGE_SIZE) { | 325 if (written_so_far >= WEBRTC_TRACE_MAX_MESSAGE_SIZE) { |
| 327 return -1; | 326 return -1; |
| 328 } | 327 } |
| 329 // - 2 to leave room for newline and NULL termination. | 328 // - 2 to leave room for newline and null termination. |
| 330 #ifdef _WIN32 | 329 #ifdef _WIN32 |
| 331 length = _snprintf(trace_message, | 330 length = _snprintf(trace_message, |
| 332 WEBRTC_TRACE_MAX_MESSAGE_SIZE - written_so_far - 2, | 331 WEBRTC_TRACE_MAX_MESSAGE_SIZE - written_so_far - 2, |
| 333 "%s", msg); | 332 "%s", msg); |
| 334 if (length < 0) { | 333 if (length < 0) { |
| 335 length = WEBRTC_TRACE_MAX_MESSAGE_SIZE - written_so_far - 2; | 334 length = WEBRTC_TRACE_MAX_MESSAGE_SIZE - written_so_far - 2; |
| 336 trace_message[length] = 0; | 335 trace_message[length] = 0; |
| 337 } | 336 } |
| 338 #else | 337 #else |
| 339 length = snprintf(trace_message, | 338 length = snprintf(trace_message, |
| 340 WEBRTC_TRACE_MAX_MESSAGE_SIZE - written_so_far - 2, | 339 WEBRTC_TRACE_MAX_MESSAGE_SIZE - written_so_far - 2, |
| 341 "%s", msg); | 340 "%s", msg); |
| 342 if (length < 0 || | 341 if (length < 0 || |
| 343 length > WEBRTC_TRACE_MAX_MESSAGE_SIZE - written_so_far - 2) { | 342 length > WEBRTC_TRACE_MAX_MESSAGE_SIZE - written_so_far - 2) { |
| 344 length = WEBRTC_TRACE_MAX_MESSAGE_SIZE - written_so_far - 2; | 343 length = WEBRTC_TRACE_MAX_MESSAGE_SIZE - written_so_far - 2; |
| 345 trace_message[length] = 0; | 344 trace_message[length] = 0; |
| 346 } | 345 } |
| 347 #endif | 346 #endif |
| 348 // Length with NULL termination. | 347 // Length with null termination. |
| 349 return length + 1; | 348 return length + 1; |
| 350 } | 349 } |
| 351 | 350 |
| 352 void TraceImpl::AddMessageToList( | 351 void TraceImpl::AddMessageToList( |
| 353 const char trace_message[WEBRTC_TRACE_MAX_MESSAGE_SIZE], | 352 const char trace_message[WEBRTC_TRACE_MAX_MESSAGE_SIZE], |
| 354 const uint16_t length, | 353 const uint16_t length, |
| 355 const TraceLevel level) { | 354 const TraceLevel level) { |
| 356 rtc::CritScope lock(&crit_); | 355 rtc::CritScope lock(&crit_); |
| 357 if (callback_) | 356 if (callback_) |
| 358 callback_->Print(level, trace_message, length); | 357 callback_->Print(level, trace_message, length); |
| (...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 574 va_end(args); | 573 va_end(args); |
| 575 buff = temp_buff; | 574 buff = temp_buff; |
| 576 } | 575 } |
| 577 trace->AddImpl(level, module, id, buff); | 576 trace->AddImpl(level, module, id, buff); |
| 578 } | 577 } |
| 579 ReturnTrace(); | 578 ReturnTrace(); |
| 580 } | 579 } |
| 581 } | 580 } |
| 582 | 581 |
| 583 } // namespace webrtc | 582 } // namespace webrtc |
| OLD | NEW |