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 |