| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "net/base/net_log.h" | 5 #include "net/base/net_log.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/logging.h" | 8 #include "base/logging.h" |
| 9 #include "base/strings/string_number_conversions.h" | 9 #include "base/strings/string_number_conversions.h" |
| 10 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
| (...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 191 } | 191 } |
| 192 | 192 |
| 193 NetLog* NetLog::ThreadSafeObserver::net_log() const { | 193 NetLog* NetLog::ThreadSafeObserver::net_log() const { |
| 194 return net_log_; | 194 return net_log_; |
| 195 } | 195 } |
| 196 | 196 |
| 197 void NetLog::ThreadSafeObserver::OnAddEntryData(const EntryData& entry_data) { | 197 void NetLog::ThreadSafeObserver::OnAddEntryData(const EntryData& entry_data) { |
| 198 OnAddEntry(Entry(&entry_data, log_level())); | 198 OnAddEntry(Entry(&entry_data, log_level())); |
| 199 } | 199 } |
| 200 | 200 |
| 201 NetLog::NetLog() | 201 NetLog::NetLog() : last_id_(0), effective_log_level_(LOG_NONE) { |
| 202 : last_id_(0), | |
| 203 base_log_level_(LOG_NONE), | |
| 204 effective_log_level_(LOG_NONE) { | |
| 205 } | 202 } |
| 206 | 203 |
| 207 NetLog::~NetLog() { | 204 NetLog::~NetLog() { |
| 208 } | 205 } |
| 209 | 206 |
| 210 void NetLog::AddGlobalEntry(EventType type) { | 207 void NetLog::AddGlobalEntry(EventType type) { |
| 211 AddEntry(type, | 208 AddEntry(type, |
| 212 Source(net::NetLog::SOURCE_NONE, NextID()), | 209 Source(net::NetLog::SOURCE_NONE, NextID()), |
| 213 net::NetLog::PHASE_NONE, | 210 net::NetLog::PHASE_NONE, |
| 214 NULL); | 211 NULL); |
| 215 } | 212 } |
| 216 | 213 |
| 217 void NetLog::AddGlobalEntry( | 214 void NetLog::AddGlobalEntry( |
| 218 EventType type, | 215 EventType type, |
| 219 const NetLog::ParametersCallback& parameters_callback) { | 216 const NetLog::ParametersCallback& parameters_callback) { |
| 220 AddEntry(type, | 217 AddEntry(type, |
| 221 Source(net::NetLog::SOURCE_NONE, NextID()), | 218 Source(net::NetLog::SOURCE_NONE, NextID()), |
| 222 net::NetLog::PHASE_NONE, | 219 net::NetLog::PHASE_NONE, |
| 223 ¶meters_callback); | 220 ¶meters_callback); |
| 224 } | 221 } |
| 225 | 222 |
| 226 uint32 NetLog::NextID() { | 223 uint32 NetLog::NextID() { |
| 227 return base::subtle::NoBarrier_AtomicIncrement(&last_id_, 1); | 224 return base::subtle::NoBarrier_AtomicIncrement(&last_id_, 1); |
| 228 } | 225 } |
| 229 | 226 |
| 230 void NetLog::SetBaseLogLevel(LogLevel log_level) { | |
| 231 base::AutoLock lock(lock_); | |
| 232 base_log_level_ = log_level; | |
| 233 | |
| 234 UpdateLogLevel(); | |
| 235 } | |
| 236 | |
| 237 NetLog::LogLevel NetLog::GetLogLevel() const { | 227 NetLog::LogLevel NetLog::GetLogLevel() const { |
| 238 base::subtle::Atomic32 log_level = | 228 base::subtle::Atomic32 log_level = |
| 239 base::subtle::NoBarrier_Load(&effective_log_level_); | 229 base::subtle::NoBarrier_Load(&effective_log_level_); |
| 240 return static_cast<net::NetLog::LogLevel>(log_level); | 230 return static_cast<net::NetLog::LogLevel>(log_level); |
| 241 } | 231 } |
| 242 | 232 |
| 243 void NetLog::AddThreadSafeObserver( | 233 void NetLog::AddThreadSafeObserver( |
| 244 net::NetLog::ThreadSafeObserver* observer, | 234 net::NetLog::ThreadSafeObserver* observer, |
| 245 LogLevel log_level) { | 235 LogLevel log_level) { |
| 246 DCHECK_NE(LOG_NONE, log_level); | 236 DCHECK_NE(LOG_NONE, log_level); |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 278 observer->net_log_ = NULL; | 268 observer->net_log_ = NULL; |
| 279 observer->log_level_ = LOG_NONE; | 269 observer->log_level_ = LOG_NONE; |
| 280 UpdateLogLevel(); | 270 UpdateLogLevel(); |
| 281 } | 271 } |
| 282 | 272 |
| 283 void NetLog::UpdateLogLevel() { | 273 void NetLog::UpdateLogLevel() { |
| 284 lock_.AssertAcquired(); | 274 lock_.AssertAcquired(); |
| 285 | 275 |
| 286 // Look through all the observers and find the finest granularity | 276 // Look through all the observers and find the finest granularity |
| 287 // log level (higher values of the enum imply *lower* log levels). | 277 // log level (higher values of the enum imply *lower* log levels). |
| 288 LogLevel new_effective_log_level = base_log_level_; | 278 LogLevel new_effective_log_level = LOG_NONE; |
| 289 ObserverListBase<ThreadSafeObserver>::Iterator it(observers_); | 279 ObserverListBase<ThreadSafeObserver>::Iterator it(observers_); |
| 290 ThreadSafeObserver* observer; | 280 ThreadSafeObserver* observer; |
| 291 while ((observer = it.GetNext()) != NULL) { | 281 while ((observer = it.GetNext()) != NULL) { |
| 292 new_effective_log_level = | 282 new_effective_log_level = |
| 293 std::min(new_effective_log_level, observer->log_level()); | 283 std::min(new_effective_log_level, observer->log_level()); |
| 294 } | 284 } |
| 295 base::subtle::NoBarrier_Store(&effective_log_level_, | 285 base::subtle::NoBarrier_Store(&effective_log_level_, |
| 296 new_effective_log_level); | 286 new_effective_log_level); |
| 297 } | 287 } |
| 298 | 288 |
| (...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 498 BoundNetLog BoundNetLog::Make(NetLog* net_log, | 488 BoundNetLog BoundNetLog::Make(NetLog* net_log, |
| 499 NetLog::SourceType source_type) { | 489 NetLog::SourceType source_type) { |
| 500 if (!net_log) | 490 if (!net_log) |
| 501 return BoundNetLog(); | 491 return BoundNetLog(); |
| 502 | 492 |
| 503 NetLog::Source source(source_type, net_log->NextID()); | 493 NetLog::Source source(source_type, net_log->NextID()); |
| 504 return BoundNetLog(source, net_log); | 494 return BoundNetLog(source, net_log); |
| 505 } | 495 } |
| 506 | 496 |
| 507 } // namespace net | 497 } // namespace net |
| OLD | NEW |