capturing_net_log.cc revision 731df977c0511bca2206b5f333555b1205ff1f43
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) 21c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch : next_id_(0), 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) { 31c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch Entry entry(type, time, source, phase, extra_parameters); 32c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch if (entries_.size() + 1 < max_num_entries_) 33c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch entries_.push_back(entry); 34c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 35c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 36c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochuint32 CapturingNetLog::NextID() { 37c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch return next_id_++; 38c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 39c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 40c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochvoid CapturingNetLog::Clear() { 41c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch entries_.clear(); 42c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 43c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 44731df977c0511bca2206b5f333555b1205ff1f43Iain MerrickCapturingBoundNetLog::CapturingBoundNetLog(const NetLog::Source& source, 45731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick CapturingNetLog* net_log) 46731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick : source_(source), capturing_net_log_(net_log) { 47731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick} 48731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 49731df977c0511bca2206b5f333555b1205ff1f43Iain MerrickCapturingBoundNetLog::CapturingBoundNetLog(size_t max_num_entries) 50731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick : capturing_net_log_(new CapturingNetLog(max_num_entries)) {} 51731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 52731df977c0511bca2206b5f333555b1205ff1f43Iain MerrickCapturingBoundNetLog::~CapturingBoundNetLog() {} 53731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 54c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochvoid CapturingBoundNetLog::Clear() { 55c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch capturing_net_log_->Clear(); 56c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 57c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 58c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochvoid CapturingBoundNetLog::AppendTo(const BoundNetLog& net_log) const { 59c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch for (size_t i = 0; i < entries().size(); ++i) { 60c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch const CapturingNetLog::Entry& entry = entries()[i]; 61c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch net_log.AddEntryWithTime(entry.type, entry.time, entry.phase, 62c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch entry.extra_parameters); 63c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch } 64c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 65c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 66c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} // namespace net 67