Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(45)

Side by Side Diff: net/base/net_log.cc

Issue 266243004: Clang format slam. Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
98 return base::Bind(&SourceEventParametersCallback, *this); 98 return base::Bind(&SourceEventParametersCallback, *this);
99 } 99 }
100 100
101 // static 101 // static
102 bool NetLog::Source::FromEventParameters(base::Value* event_params, 102 bool NetLog::Source::FromEventParameters(base::Value* event_params,
103 Source* source) { 103 Source* source) {
104 base::DictionaryValue* dict; 104 base::DictionaryValue* dict;
105 base::DictionaryValue* source_dict; 105 base::DictionaryValue* source_dict;
106 int source_id; 106 int source_id;
107 int source_type; 107 int source_type;
108 if (!event_params || 108 if (!event_params || !event_params->GetAsDictionary(&dict) ||
109 !event_params->GetAsDictionary(&dict) ||
110 !dict->GetDictionary("source_dependency", &source_dict) || 109 !dict->GetDictionary("source_dependency", &source_dict) ||
111 !source_dict->GetInteger("id", &source_id) || 110 !source_dict->GetInteger("id", &source_id) ||
112 !source_dict->GetInteger("type", &source_type)) { 111 !source_dict->GetInteger("type", &source_type)) {
113 *source = Source(); 112 *source = Source();
114 return false; 113 return false;
115 } 114 }
116 115
117 DCHECK_LE(0, source_id); 116 DCHECK_LE(0, source_id);
118 DCHECK_LT(source_type, NetLog::SOURCE_COUNT); 117 DCHECK_LT(source_type, NetLog::SOURCE_COUNT);
119 *source = Source(static_cast<SourceType>(source_type), source_id); 118 *source = Source(static_cast<SourceType>(source_type), source_id);
(...skipping 24 matching lines...) Expand all
144 143
145 return entry_dict; 144 return entry_dict;
146 } 145 }
147 146
148 base::Value* NetLog::Entry::ParametersToValue() const { 147 base::Value* NetLog::Entry::ParametersToValue() const {
149 if (data_->parameters_callback) 148 if (data_->parameters_callback)
150 return data_->parameters_callback->Run(log_level_); 149 return data_->parameters_callback->Run(log_level_);
151 return NULL; 150 return NULL;
152 } 151 }
153 152
154 NetLog::EntryData::EntryData( 153 NetLog::EntryData::EntryData(EventType type,
155 EventType type, 154 Source source,
156 Source source, 155 EventPhase phase,
157 EventPhase phase, 156 base::TimeTicks time,
158 base::TimeTicks time, 157 const ParametersCallback* parameters_callback)
159 const ParametersCallback* parameters_callback)
160 : type(type), 158 : type(type),
161 source(source), 159 source(source),
162 phase(phase), 160 phase(phase),
163 time(time), 161 time(time),
164 parameters_callback(parameters_callback) { 162 parameters_callback(parameters_callback) {
165 } 163 }
166 164
167 NetLog::EntryData::~EntryData() { 165 NetLog::EntryData::~EntryData() {
168 } 166 }
169 167
170 NetLog::Entry::Entry(const EntryData* data, LogLevel log_level) 168 NetLog::Entry::Entry(const EntryData* data, LogLevel log_level)
171 : data_(data), log_level_(log_level) { 169 : data_(data), log_level_(log_level) {
172 } 170 }
173 171
174 NetLog::Entry::~Entry() { 172 NetLog::Entry::~Entry() {
175 } 173 }
176 174
177 NetLog::ThreadSafeObserver::ThreadSafeObserver() : log_level_(LOG_NONE), 175 NetLog::ThreadSafeObserver::ThreadSafeObserver()
178 net_log_(NULL) { 176 : log_level_(LOG_NONE), net_log_(NULL) {
179 } 177 }
180 178
181 NetLog::ThreadSafeObserver::~ThreadSafeObserver() { 179 NetLog::ThreadSafeObserver::~ThreadSafeObserver() {
182 // Make sure we aren't watching a NetLog on destruction. Because the NetLog 180 // Make sure we aren't watching a NetLog on destruction. Because the NetLog
183 // may pass events to each observer on multiple threads, we cannot safely 181 // may pass events to each observer on multiple threads, we cannot safely
184 // stop watching a NetLog automatically from a parent class. 182 // stop watching a NetLog automatically from a parent class.
185 DCHECK(!net_log_); 183 DCHECK(!net_log_);
186 } 184 }
187 185
188 NetLog::LogLevel NetLog::ThreadSafeObserver::log_level() const { 186 NetLog::LogLevel NetLog::ThreadSafeObserver::log_level() const {
189 DCHECK(net_log_); 187 DCHECK(net_log_);
190 return log_level_; 188 return log_level_;
191 } 189 }
192 190
193 NetLog* NetLog::ThreadSafeObserver::net_log() const { 191 NetLog* NetLog::ThreadSafeObserver::net_log() const {
194 return net_log_; 192 return net_log_;
195 } 193 }
196 194
197 void NetLog::ThreadSafeObserver::OnAddEntryData(const EntryData& entry_data) { 195 void NetLog::ThreadSafeObserver::OnAddEntryData(const EntryData& entry_data) {
198 OnAddEntry(Entry(&entry_data, log_level())); 196 OnAddEntry(Entry(&entry_data, log_level()));
199 } 197 }
200 198
201 NetLog::NetLog() 199 NetLog::NetLog()
202 : last_id_(0), 200 : last_id_(0), base_log_level_(LOG_NONE), effective_log_level_(LOG_NONE) {
203 base_log_level_(LOG_NONE),
204 effective_log_level_(LOG_NONE) {
205 } 201 }
206 202
207 NetLog::~NetLog() { 203 NetLog::~NetLog() {
208 } 204 }
209 205
210 void NetLog::AddGlobalEntry(EventType type) { 206 void NetLog::AddGlobalEntry(EventType type) {
211 AddEntry(type, 207 AddEntry(type,
212 Source(net::NetLog::SOURCE_NONE, NextID()), 208 Source(net::NetLog::SOURCE_NONE, NextID()),
213 net::NetLog::PHASE_NONE, 209 net::NetLog::PHASE_NONE,
214 NULL); 210 NULL);
(...skipping 18 matching lines...) Expand all
233 229
234 UpdateLogLevel(); 230 UpdateLogLevel();
235 } 231 }
236 232
237 NetLog::LogLevel NetLog::GetLogLevel() const { 233 NetLog::LogLevel NetLog::GetLogLevel() const {
238 base::subtle::Atomic32 log_level = 234 base::subtle::Atomic32 log_level =
239 base::subtle::NoBarrier_Load(&effective_log_level_); 235 base::subtle::NoBarrier_Load(&effective_log_level_);
240 return static_cast<net::NetLog::LogLevel>(log_level); 236 return static_cast<net::NetLog::LogLevel>(log_level);
241 } 237 }
242 238
243 void NetLog::AddThreadSafeObserver( 239 void NetLog::AddThreadSafeObserver(net::NetLog::ThreadSafeObserver* observer,
244 net::NetLog::ThreadSafeObserver* observer, 240 LogLevel log_level) {
245 LogLevel log_level) {
246 DCHECK_NE(LOG_NONE, log_level); 241 DCHECK_NE(LOG_NONE, log_level);
247 base::AutoLock lock(lock_); 242 base::AutoLock lock(lock_);
248 243
249 DCHECK(!observer->net_log_); 244 DCHECK(!observer->net_log_);
250 DCHECK_EQ(LOG_NONE, observer->log_level_); 245 DCHECK_EQ(LOG_NONE, observer->log_level_);
251 observers_.AddObserver(observer); 246 observers_.AddObserver(observer);
252 observer->net_log_ = this; 247 observer->net_log_ = this;
253 observer->log_level_ = log_level; 248 observer->log_level_ = log_level;
254 UpdateLogLevel(); 249 UpdateLogLevel();
255 } 250 }
256 251
257 void NetLog::SetObserverLogLevel( 252 void NetLog::SetObserverLogLevel(net::NetLog::ThreadSafeObserver* observer,
258 net::NetLog::ThreadSafeObserver* observer, 253 LogLevel log_level) {
259 LogLevel log_level) {
260 DCHECK_NE(LOG_NONE, log_level); 254 DCHECK_NE(LOG_NONE, log_level);
261 base::AutoLock lock(lock_); 255 base::AutoLock lock(lock_);
262 256
263 DCHECK(observers_.HasObserver(observer)); 257 DCHECK(observers_.HasObserver(observer));
264 DCHECK_EQ(this, observer->net_log_); 258 DCHECK_EQ(this, observer->net_log_);
265 DCHECK_NE(LOG_NONE, observer->log_level_); 259 DCHECK_NE(LOG_NONE, observer->log_level_);
266 observer->log_level_ = log_level; 260 observer->log_level_ = log_level;
267 UpdateLogLevel(); 261 UpdateLogLevel();
268 } 262 }
269 263
(...skipping 15 matching lines...) Expand all
285 279
286 // Look through all the observers and find the finest granularity 280 // Look through all the observers and find the finest granularity
287 // log level (higher values of the enum imply *lower* log levels). 281 // log level (higher values of the enum imply *lower* log levels).
288 LogLevel new_effective_log_level = base_log_level_; 282 LogLevel new_effective_log_level = base_log_level_;
289 ObserverListBase<ThreadSafeObserver>::Iterator it(observers_); 283 ObserverListBase<ThreadSafeObserver>::Iterator it(observers_);
290 ThreadSafeObserver* observer; 284 ThreadSafeObserver* observer;
291 while ((observer = it.GetNext()) != NULL) { 285 while ((observer = it.GetNext()) != NULL) {
292 new_effective_log_level = 286 new_effective_log_level =
293 std::min(new_effective_log_level, observer->log_level()); 287 std::min(new_effective_log_level, observer->log_level());
294 } 288 }
295 base::subtle::NoBarrier_Store(&effective_log_level_, 289 base::subtle::NoBarrier_Store(&effective_log_level_, new_effective_log_level);
296 new_effective_log_level);
297 } 290 }
298 291
299 // static 292 // static
300 std::string NetLog::TickCountToString(const base::TimeTicks& time) { 293 std::string NetLog::TickCountToString(const base::TimeTicks& time) {
301 int64 delta_time = (time - base::TimeTicks()).InMilliseconds(); 294 int64 delta_time = (time - base::TimeTicks()).InMilliseconds();
302 return base::Int64ToString(delta_time); 295 return base::Int64ToString(delta_time);
303 } 296 }
304 297
305 // static 298 // static
306 const char* NetLog::EventTypeToString(EventType event) { 299 const char* NetLog::EventTypeToString(EventType event) {
307 switch (event) { 300 switch (event) {
308 #define EVENT_TYPE(label) case TYPE_ ## label: return #label; 301 #define EVENT_TYPE(label) \
302 case TYPE_##label: \
303 return #label;
309 #include "net/base/net_log_event_type_list.h" 304 #include "net/base/net_log_event_type_list.h"
310 #undef EVENT_TYPE 305 #undef EVENT_TYPE
311 default: 306 default:
312 NOTREACHED(); 307 NOTREACHED();
313 return NULL; 308 return NULL;
314 } 309 }
315 } 310 }
316 311
317 // static 312 // static
318 base::Value* NetLog::GetEventTypesAsValue() { 313 base::Value* NetLog::GetEventTypesAsValue() {
319 base::DictionaryValue* dict = new base::DictionaryValue(); 314 base::DictionaryValue* dict = new base::DictionaryValue();
320 for (int i = 0; i < EVENT_COUNT; ++i) { 315 for (int i = 0; i < EVENT_COUNT; ++i) {
321 dict->SetInteger(EventTypeToString(static_cast<EventType>(i)), i); 316 dict->SetInteger(EventTypeToString(static_cast<EventType>(i)), i);
322 } 317 }
323 return dict; 318 return dict;
324 } 319 }
325 320
326 // static 321 // static
327 const char* NetLog::SourceTypeToString(SourceType source) { 322 const char* NetLog::SourceTypeToString(SourceType source) {
328 switch (source) { 323 switch (source) {
329 #define SOURCE_TYPE(label) case SOURCE_ ## label: return #label; 324 #define SOURCE_TYPE(label) \
325 case SOURCE_##label: \
326 return #label;
330 #include "net/base/net_log_source_type_list.h" 327 #include "net/base/net_log_source_type_list.h"
331 #undef SOURCE_TYPE 328 #undef SOURCE_TYPE
332 default: 329 default:
333 NOTREACHED(); 330 NOTREACHED();
334 return NULL; 331 return NULL;
335 } 332 }
336 } 333 }
337 334
338 // static 335 // static
339 base::Value* NetLog::GetSourceTypesAsValue() { 336 base::Value* NetLog::GetSourceTypesAsValue() {
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
393 DCHECK(value); 390 DCHECK(value);
394 return base::Bind(&NetLogString16Callback, name, value); 391 return base::Bind(&NetLogString16Callback, name, value);
395 } 392 }
396 393
397 void NetLog::AddEntry(EventType type, 394 void NetLog::AddEntry(EventType type,
398 const Source& source, 395 const Source& source,
399 EventPhase phase, 396 EventPhase phase,
400 const NetLog::ParametersCallback* parameters_callback) { 397 const NetLog::ParametersCallback* parameters_callback) {
401 if (GetLogLevel() == LOG_NONE) 398 if (GetLogLevel() == LOG_NONE)
402 return; 399 return;
403 EntryData entry_data(type, source, phase, base::TimeTicks::Now(), 400 EntryData entry_data(
404 parameters_callback); 401 type, source, phase, base::TimeTicks::Now(), parameters_callback);
405 402
406 // Notify all of the log observers. 403 // Notify all of the log observers.
407 base::AutoLock lock(lock_); 404 base::AutoLock lock(lock_);
408 FOR_EACH_OBSERVER(ThreadSafeObserver, observers_, OnAddEntryData(entry_data)); 405 FOR_EACH_OBSERVER(ThreadSafeObserver, observers_, OnAddEntryData(entry_data));
409 } 406 }
410 407
411 void BoundNetLog::AddEntry(NetLog::EventType type, 408 void BoundNetLog::AddEntry(NetLog::EventType type,
412 NetLog::EventPhase phase) const { 409 NetLog::EventPhase phase) const {
413 if (!net_log_) 410 if (!net_log_)
414 return; 411 return;
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
488 485
489 bool BoundNetLog::IsLoggingBytes() const { 486 bool BoundNetLog::IsLoggingBytes() const {
490 return NetLog::IsLoggingBytes(GetLogLevel()); 487 return NetLog::IsLoggingBytes(GetLogLevel());
491 } 488 }
492 489
493 bool BoundNetLog::IsLogging() const { 490 bool BoundNetLog::IsLogging() const {
494 return NetLog::IsLogging(GetLogLevel()); 491 return NetLog::IsLogging(GetLogLevel());
495 } 492 }
496 493
497 // static 494 // static
498 BoundNetLog BoundNetLog::Make(NetLog* net_log, 495 BoundNetLog BoundNetLog::Make(NetLog* net_log, NetLog::SourceType source_type) {
499 NetLog::SourceType source_type) {
500 if (!net_log) 496 if (!net_log)
501 return BoundNetLog(); 497 return BoundNetLog();
502 498
503 NetLog::Source source(source_type, net_log->NextID()); 499 NetLog::Source source(source_type, net_log->NextID());
504 return BoundNetLog(source, net_log); 500 return BoundNetLog(source, net_log);
505 } 501 }
506 502
507 } // namespace net 503 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698