capturing_net_log.cc revision 21d179b334e59e9a3bfcaed4c4430bef1bc5759d
1c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Copyright (c) 2010 The Chromium Authors. All rights reserved. 2c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Use of this source code is governed by a BSD-style license that can be 3c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// found in the LICENSE file. 4c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 5c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "net/base/capturing_net_log.h" 6c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 7c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochnamespace net { 8c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 9731df977c0511bca2206b5f333555b1205ff1f43Iain MerrickCapturingNetLog::Entry::Entry(EventType type, 10731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick const base::TimeTicks& time, 11731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick Source source, 12731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick EventPhase phase, 13731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick EventParameters* extra_parameters) 14731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick : type(type), time(time), source(source), phase(phase), 15731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick extra_parameters(extra_parameters) { 16731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick} 17731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 18731df977c0511bca2206b5f333555b1205ff1f43Iain MerrickCapturingNetLog::Entry::~Entry() {} 19731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 20c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochCapturingNetLog::CapturingNetLog(size_t max_num_entries) 2121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen : last_id_(-1), max_num_entries_(max_num_entries) { 22c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 23c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 24731df977c0511bca2206b5f333555b1205ff1f43Iain MerrickCapturingNetLog::~CapturingNetLog() {} 25731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 26c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochvoid CapturingNetLog::AddEntry(EventType type, 27c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch const base::TimeTicks& time, 28c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch const Source& source, 29c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch EventPhase phase, 30c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch EventParameters* extra_parameters) { 3121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen AutoLock lock(lock_); 32c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch Entry entry(type, time, source, phase, extra_parameters); 33c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch if (entries_.size() + 1 < max_num_entries_) 34c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch entries_.push_back(entry); 35c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 36c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 37c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochuint32 CapturingNetLog::NextID() { 3821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen return base::subtle::NoBarrier_AtomicIncrement(&last_id_, 1); 3921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen} 4021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 4121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian MonsenNetLog::LogLevel CapturingNetLog::GetLogLevel() const { 4221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen return LOG_ALL_BUT_BYTES; 4321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen} 4421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 4521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsenvoid CapturingNetLog::GetEntries(EntryList* entry_list) const { 4621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen AutoLock lock(lock_); 4721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen *entry_list = entries_; 48c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 49c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 50c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochvoid CapturingNetLog::Clear() { 5121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen AutoLock lock(lock_); 52c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch entries_.clear(); 53c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 54c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 55731df977c0511bca2206b5f333555b1205ff1f43Iain MerrickCapturingBoundNetLog::CapturingBoundNetLog(const NetLog::Source& source, 56731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick CapturingNetLog* net_log) 57731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick : source_(source), capturing_net_log_(net_log) { 58731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick} 59731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 60731df977c0511bca2206b5f333555b1205ff1f43Iain MerrickCapturingBoundNetLog::CapturingBoundNetLog(size_t max_num_entries) 61731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick : capturing_net_log_(new CapturingNetLog(max_num_entries)) {} 62731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 63731df977c0511bca2206b5f333555b1205ff1f43Iain MerrickCapturingBoundNetLog::~CapturingBoundNetLog() {} 64731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 6521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsenvoid CapturingBoundNetLog::GetEntries( 6621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen CapturingNetLog::EntryList* entry_list) const { 6721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen capturing_net_log_->GetEntries(entry_list); 68c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 69c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 7021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsenvoid CapturingBoundNetLog::Clear() { 7121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen capturing_net_log_->Clear(); 72c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 73c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 74c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} // namespace net 75