diff options
author | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-02-01 04:47:40 +0000 |
---|---|---|
committer | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-02-01 04:47:40 +0000 |
commit | 3a85b1f23e82eff120d6f7d28e94fbd85a3c7dc2 (patch) | |
tree | 1d4bf98014910289bd964f47fdc41bbd70aa8e88 /content/browser/trace_subscriber_stdio.cc | |
parent | d92620b4d1aca5ba1afb217c313239ddfd8a0f69 (diff) | |
download | chromium_src-3a85b1f23e82eff120d6f7d28e94fbd85a3c7dc2.zip chromium_src-3a85b1f23e82eff120d6f7d28e94fbd85a3c7dc2.tar.gz chromium_src-3a85b1f23e82eff120d6f7d28e94fbd85a3c7dc2.tar.bz2 |
Move tracing code in content\browser to content\browser\tracing now that there's a separate directory.
BUG=169170
Review URL: https://codereview.chromium.org/12149003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@180071 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser/trace_subscriber_stdio.cc')
-rw-r--r-- | content/browser/trace_subscriber_stdio.cc | 104 |
1 files changed, 0 insertions, 104 deletions
diff --git a/content/browser/trace_subscriber_stdio.cc b/content/browser/trace_subscriber_stdio.cc deleted file mode 100644 index 05ebaba..0000000 --- a/content/browser/trace_subscriber_stdio.cc +++ /dev/null @@ -1,104 +0,0 @@ -// Copyright (c) 2012 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 "content/browser/trace_subscriber_stdio.h" - -#include "base/bind.h" -#include "base/debug/trace_event.h" -#include "base/logging.h" -#include "base/threading/sequenced_worker_pool.h" -#include "content/public/browser/browser_thread.h" - -namespace content { - -// All method calls on this class are done on a SequencedWorkerPool thread. -class TraceSubscriberStdioImpl - : public base::RefCountedThreadSafe<TraceSubscriberStdioImpl> { - public: - explicit TraceSubscriberStdioImpl(const FilePath& path) - : path_(path), - file_(0) {} - - void OnStart() { - DCHECK(!file_); - trace_buffer_.SetOutputCallback( - base::Bind(&TraceSubscriberStdioImpl::Write, this)); - file_ = file_util::OpenFile(path_, "w+"); - if (IsValid()) { - LOG(INFO) << "Logging performance trace to file: " << path_.value(); - trace_buffer_.Start(); - } else { - LOG(ERROR) << "Failed to open performance trace file: " << path_.value(); - } - } - - void OnData(const scoped_refptr<base::RefCountedString>& data_ptr) { - trace_buffer_.AddFragment(data_ptr->data()); - } - - void OnEnd() { - trace_buffer_.Finish(); - CloseFile(); - } - - private: - friend class base::RefCountedThreadSafe<TraceSubscriberStdioImpl>; - - ~TraceSubscriberStdioImpl() { - CloseFile(); - } - - bool IsValid() const { - return file_ && (0 == ferror(file_)); - } - - void CloseFile() { - if (file_) { - fclose(file_); - file_ = 0; - } - // This is important, as it breaks a reference cycle. - trace_buffer_.SetOutputCallback( - base::debug::TraceResultBuffer::OutputCallback()); - } - - void Write(const std::string& output_str) { - if (IsValid()) { - size_t written = fwrite(output_str.data(), 1, output_str.size(), file_); - if (written != output_str.size()) { - LOG(ERROR) << "Error " << ferror(file_) << " in fwrite() to trace file"; - CloseFile(); - } - } - } - - FilePath path_; - FILE* file_; - base::debug::TraceResultBuffer trace_buffer_; -}; - -TraceSubscriberStdio::TraceSubscriberStdio(const FilePath& path) - : impl_(new TraceSubscriberStdioImpl(path)) { - BrowserThread::PostBlockingPoolSequencedTask( - __FILE__, FROM_HERE, - base::Bind(&TraceSubscriberStdioImpl::OnStart, impl_)); -} - -TraceSubscriberStdio::~TraceSubscriberStdio() { -} - -void TraceSubscriberStdio::OnEndTracingComplete() { - BrowserThread::PostBlockingPoolSequencedTask( - __FILE__, FROM_HERE, - base::Bind(&TraceSubscriberStdioImpl::OnEnd, impl_)); -} - -void TraceSubscriberStdio::OnTraceDataCollected( - const scoped_refptr<base::RefCountedString>& data_ptr) { - BrowserThread::PostBlockingPoolSequencedTask( - __FILE__, FROM_HERE, - base::Bind(&TraceSubscriberStdioImpl::OnData, impl_, data_ptr)); -} - -} // namespace content |