| 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 | 5 |
| 6 #ifndef BASE_DEBUG_TRACE_EVENT_IMPL_H_ | 6 #ifndef BASE_DEBUG_TRACE_EVENT_IMPL_H_ |
| 7 #define BASE_DEBUG_TRACE_EVENT_IMPL_H_ | 7 #define BASE_DEBUG_TRACE_EVENT_IMPL_H_ |
| 8 | 8 |
| 9 #include "build/build_config.h" | 9 #include "build/build_config.h" |
| 10 | 10 |
| (...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 274 long long threshold, | 274 long long threshold, |
| 275 unsigned char flags); | 275 unsigned char flags); |
| 276 static void AddTraceEventEtw(char phase, | 276 static void AddTraceEventEtw(char phase, |
| 277 const char* name, | 277 const char* name, |
| 278 const void* id, | 278 const void* id, |
| 279 const char* extra); | 279 const char* extra); |
| 280 static void AddTraceEventEtw(char phase, | 280 static void AddTraceEventEtw(char phase, |
| 281 const char* name, | 281 const char* name, |
| 282 const void* id, | 282 const void* id, |
| 283 const std::string& extra); | 283 const std::string& extra); |
| 284 int AddTraceRawEvent(char phase, |
| 285 const unsigned char* category_enabled, |
| 286 const char* thread_name, |
| 287 const char* name, |
| 288 int64 timestamp, |
| 289 unsigned long long id, |
| 290 int num_args, |
| 291 const char** arg_names, |
| 292 const unsigned char* arg_types, |
| 293 const unsigned long long* arg_values, |
| 294 int threshold_begin_id, |
| 295 long long threshold, |
| 296 unsigned char flags); |
| 284 | 297 |
| 285 // For every matching event, a notification will be fired. NOTE: the | 298 // For every matching event, a notification will be fired. NOTE: the |
| 286 // notification will fire for each matching event that has already occurred | 299 // notification will fire for each matching event that has already occurred |
| 287 // since tracing was started (including before tracing if the process was | 300 // since tracing was started (including before tracing if the process was |
| 288 // started with tracing turned on). | 301 // started with tracing turned on). |
| 289 void SetWatchEvent(const std::string& category_name, | 302 void SetWatchEvent(const std::string& category_name, |
| 290 const std::string& event_name); | 303 const std::string& event_name); |
| 291 // Cancel the watch event. If tracing is enabled, this may race with the | 304 // Cancel the watch event. If tracing is enabled, this may race with the |
| 292 // watch event notification firing. | 305 // watch event notification firing. |
| 293 void CancelWatchEvent(); | 306 void CancelWatchEvent(); |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 348 void SendToATrace(char phase, | 361 void SendToATrace(char phase, |
| 349 const char* category, | 362 const char* category, |
| 350 const char* name, | 363 const char* name, |
| 351 int num_args, | 364 int num_args, |
| 352 const char** arg_names, | 365 const char** arg_names, |
| 353 const unsigned char* arg_types, | 366 const unsigned char* arg_types, |
| 354 const unsigned long long* arg_values); | 367 const unsigned long long* arg_values); |
| 355 void AddClockSyncMetadataEvents(); | 368 void AddClockSyncMetadataEvents(); |
| 356 #endif | 369 #endif |
| 357 | 370 |
| 371 int AddTraceEventInternal(NotificationHelper& notifier, |
| 372 TimeTicks timestamp, |
| 373 char phase, |
| 374 const unsigned char* category_enabled, |
| 375 int thread_id, |
| 376 const char* name, |
| 377 unsigned long long id, |
| 378 int num_args, |
| 379 const char** arg_names, |
| 380 const unsigned char* arg_types, |
| 381 const unsigned long long* arg_values, |
| 382 int threshold_begin_id, |
| 383 long long threshold, |
| 384 unsigned char flags); |
| 385 |
| 358 // TODO(nduca): switch to per-thread trace buffers to reduce thread | 386 // TODO(nduca): switch to per-thread trace buffers to reduce thread |
| 359 // synchronization. | 387 // synchronization. |
| 360 // This lock protects TraceLog member accesses from arbitrary threads. | 388 // This lock protects TraceLog member accesses from arbitrary threads. |
| 361 Lock lock_; | 389 Lock lock_; |
| 362 bool enabled_; | 390 bool enabled_; |
| 363 NotificationCallback notification_callback_; | 391 NotificationCallback notification_callback_; |
| 364 std::vector<TraceEvent> logged_events_; | 392 std::vector<TraceEvent> logged_events_; |
| 365 std::vector<std::string> included_categories_; | 393 std::vector<std::string> included_categories_; |
| 366 std::vector<std::string> excluded_categories_; | 394 std::vector<std::string> excluded_categories_; |
| 367 bool dispatching_to_observer_list_; | 395 bool dispatching_to_observer_list_; |
| 368 ObserverList<EnabledStateChangedObserver> enabled_state_observer_list_; | 396 ObserverList<EnabledStateChangedObserver> enabled_state_observer_list_; |
| 369 | 397 |
| 370 base::hash_map<int, std::string> thread_names_; | 398 base::hash_map<int, std::string> thread_names_; |
| 371 | 399 |
| 400 base::hash_map<std::string, int> fake_thread_names_; |
| 401 int next_fake_thread_id_; |
| 402 |
| 372 // XORed with TraceID to make it unlikely to collide with other processes. | 403 // XORed with TraceID to make it unlikely to collide with other processes. |
| 373 unsigned long long process_id_hash_; | 404 unsigned long long process_id_hash_; |
| 374 | 405 |
| 375 int process_id_; | 406 int process_id_; |
| 376 | 407 |
| 377 // Allow tests to wake up when certain events occur. | 408 // Allow tests to wake up when certain events occur. |
| 378 const unsigned char* watch_category_; | 409 const unsigned char* watch_category_; |
| 379 std::string watch_event_name_; | 410 std::string watch_event_name_; |
| 380 | 411 |
| 381 DISALLOW_COPY_AND_ASSIGN(TraceLog); | 412 DISALLOW_COPY_AND_ASSIGN(TraceLog); |
| 382 }; | 413 }; |
| 383 | 414 |
| 384 } // namespace debug | 415 } // namespace debug |
| 385 } // namespace base | 416 } // namespace base |
| 386 | 417 |
| 387 #endif // BASE_DEBUG_TRACE_EVENT_IMPL_H_ | 418 #endif // BASE_DEBUG_TRACE_EVENT_IMPL_H_ |
| OLD | NEW |