1// Copyright (c) 2010 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "net/base/capturing_net_log.h" 6 7namespace net { 8 9CapturingNetLog::Entry::Entry(EventType type, 10 const base::TimeTicks& time, 11 Source source, 12 EventPhase phase, 13 EventParameters* extra_parameters) 14 : type(type), time(time), source(source), phase(phase), 15 extra_parameters(extra_parameters) { 16} 17 18CapturingNetLog::Entry::~Entry() {} 19 20CapturingNetLog::CapturingNetLog(size_t max_num_entries) 21 : last_id_(-1), 22 max_num_entries_(max_num_entries), 23 log_level_(LOG_ALL_BUT_BYTES) { 24} 25 26CapturingNetLog::~CapturingNetLog() {} 27 28void CapturingNetLog::GetEntries(EntryList* entry_list) const { 29 base::AutoLock lock(lock_); 30 *entry_list = entries_; 31} 32 33void CapturingNetLog::Clear() { 34 base::AutoLock lock(lock_); 35 entries_.clear(); 36} 37 38void CapturingNetLog::SetLogLevel(NetLog::LogLevel log_level) { 39 base::AutoLock lock(lock_); 40 log_level_ = log_level; 41} 42 43void CapturingNetLog::AddEntry(EventType type, 44 const base::TimeTicks& time, 45 const Source& source, 46 EventPhase phase, 47 EventParameters* extra_parameters) { 48 base::AutoLock lock(lock_); 49 Entry entry(type, time, source, phase, extra_parameters); 50 if (entries_.size() + 1 < max_num_entries_) 51 entries_.push_back(entry); 52} 53 54uint32 CapturingNetLog::NextID() { 55 return base::subtle::NoBarrier_AtomicIncrement(&last_id_, 1); 56} 57 58NetLog::LogLevel CapturingNetLog::GetLogLevel() const { 59 base::AutoLock lock(lock_); 60 return log_level_; 61} 62 63CapturingBoundNetLog::CapturingBoundNetLog(const NetLog::Source& source, 64 CapturingNetLog* net_log) 65 : source_(source), capturing_net_log_(net_log) { 66} 67 68CapturingBoundNetLog::CapturingBoundNetLog(size_t max_num_entries) 69 : capturing_net_log_(new CapturingNetLog(max_num_entries)) {} 70 71CapturingBoundNetLog::~CapturingBoundNetLog() {} 72 73void CapturingBoundNetLog::GetEntries( 74 CapturingNetLog::EntryList* entry_list) const { 75 capturing_net_log_->GetEntries(entry_list); 76} 77 78void CapturingBoundNetLog::Clear() { 79 capturing_net_log_->Clear(); 80} 81 82void CapturingBoundNetLog::SetLogLevel(NetLog::LogLevel log_level) { 83 capturing_net_log_->SetLogLevel(log_level); 84} 85 86} // namespace net 87