Index: net/disk_cache/blockfile/trace.cc |
diff --git a/net/disk_cache/blockfile/trace.cc b/net/disk_cache/blockfile/trace.cc |
deleted file mode 100644 |
index 7f21e2f7609aa5927a34609908a0a9a60f32442c..0000000000000000000000000000000000000000 |
--- a/net/disk_cache/blockfile/trace.cc |
+++ /dev/null |
@@ -1,192 +0,0 @@ |
-// Copyright (c) 2011 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "net/disk_cache/blockfile/trace.h" |
- |
-#include <stdio.h> |
-#if defined(OS_WIN) |
-#include <windows.h> |
-#endif |
- |
-#include "base/lazy_instance.h" |
-#include "base/logging.h" |
-#include "base/synchronization/lock.h" |
-#include "net/disk_cache/blockfile/stress_support.h" |
- |
-// Change this value to 1 to enable tracing on a release build. By default, |
-// tracing is enabled only on debug builds. |
-#define ENABLE_TRACING 0 |
- |
-#ifndef NDEBUG |
-#undef ENABLE_TRACING |
-#define ENABLE_TRACING 1 |
-#endif |
- |
-namespace { |
- |
-const int kEntrySize = 12 * sizeof(size_t); |
-#if defined(NET_BUILD_STRESS_CACHE) |
-const int kNumberOfEntries = 500000; |
-#else |
-const int kNumberOfEntries = 5000; // 240 KB on 32bit, 480 KB on 64bit |
-#endif |
- |
-bool s_trace_enabled = false; |
-base::LazyInstance<base::Lock>::Leaky s_lock = LAZY_INSTANCE_INITIALIZER; |
- |
-struct TraceBuffer { |
- int num_traces; |
- int current; |
- char buffer[kNumberOfEntries][kEntrySize]; |
-}; |
- |
-#if ENABLE_TRACING |
-void DebugOutput(const char* msg) { |
-#if defined(OS_WIN) |
- OutputDebugStringA(msg); |
-#else |
- NOTIMPLEMENTED(); |
-#endif |
-} |
-#endif // ENABLE_TRACING |
- |
-} // namespace |
- |
-namespace disk_cache { |
- |
-// s_trace_buffer and s_trace_object are not singletons because I want the |
-// buffer to be destroyed and re-created when the last user goes away, and it |
-// must be straightforward to access the buffer from the debugger. |
-static TraceObject* s_trace_object = NULL; |
- |
-// Static. |
-TraceObject* TraceObject::GetTraceObject() { |
- base::AutoLock lock(s_lock.Get()); |
- |
- if (s_trace_object) |
- return s_trace_object; |
- |
- s_trace_object = new TraceObject(); |
- return s_trace_object; |
-} |
- |
-TraceObject::TraceObject() { |
- InitTrace(); |
-} |
- |
-TraceObject::~TraceObject() { |
- DestroyTrace(); |
-} |
- |
-void TraceObject::EnableTracing(bool enable) { |
- base::AutoLock lock(s_lock.Get()); |
- s_trace_enabled = enable; |
-} |
- |
-#if ENABLE_TRACING |
- |
-static TraceBuffer* s_trace_buffer = NULL; |
- |
-void InitTrace(void) { |
- s_trace_enabled = true; |
- if (s_trace_buffer) |
- return; |
- |
- s_trace_buffer = new TraceBuffer; |
- memset(s_trace_buffer, 0, sizeof(*s_trace_buffer)); |
-} |
- |
-void DestroyTrace(void) { |
- base::AutoLock lock(s_lock.Get()); |
- |
- delete s_trace_buffer; |
- s_trace_buffer = NULL; |
- s_trace_object = NULL; |
-} |
- |
-void Trace(const char* format, ...) { |
- if (!s_trace_buffer || !s_trace_enabled) |
- return; |
- |
- va_list ap; |
- va_start(ap, format); |
- char line[kEntrySize + 2]; |
- |
-#if defined(OS_WIN) |
- vsprintf_s(line, format, ap); |
-#else |
- vsnprintf(line, kEntrySize, format, ap); |
-#endif |
- |
-#if defined(DISK_CACHE_TRACE_TO_LOG) |
- line[kEntrySize] = '\0'; |
- LOG(INFO) << line; |
-#endif |
- |
- va_end(ap); |
- |
- { |
- base::AutoLock lock(s_lock.Get()); |
- if (!s_trace_buffer || !s_trace_enabled) |
- return; |
- |
- memcpy(s_trace_buffer->buffer[s_trace_buffer->current], line, kEntrySize); |
- |
- s_trace_buffer->num_traces++; |
- s_trace_buffer->current++; |
- if (s_trace_buffer->current == kNumberOfEntries) |
- s_trace_buffer->current = 0; |
- } |
-} |
- |
-// Writes the last num_traces to the debugger output. |
-void DumpTrace(int num_traces) { |
- DCHECK(s_trace_buffer); |
- DebugOutput("Last traces:\n"); |
- |
- if (num_traces > kNumberOfEntries || num_traces < 0) |
- num_traces = kNumberOfEntries; |
- |
- if (s_trace_buffer->num_traces) { |
- char line[kEntrySize + 2]; |
- |
- int current = s_trace_buffer->current - num_traces; |
- if (current < 0) |
- current += kNumberOfEntries; |
- |
- for (int i = 0; i < num_traces; i++) { |
- memcpy(line, s_trace_buffer->buffer[current], kEntrySize); |
- line[kEntrySize] = '\0'; |
- size_t length = strlen(line); |
- if (length) { |
- line[length] = '\n'; |
- line[length + 1] = '\0'; |
- DebugOutput(line); |
- } |
- |
- current++; |
- if (current == kNumberOfEntries) |
- current = 0; |
- } |
- } |
- |
- DebugOutput("End of Traces\n"); |
-} |
- |
-#else // ENABLE_TRACING |
- |
-void InitTrace(void) { |
- return; |
-} |
- |
-void DestroyTrace(void) { |
- s_trace_object = NULL; |
-} |
- |
-void Trace(const char* format, ...) { |
-} |
- |
-#endif // ENABLE_TRACING |
- |
-} // namespace disk_cache |