LCOV - code coverage report
Current view: top level - gfx/skia/skia/include/utils - SkEventTracer.h (source / functions) Hit Total Coverage
Test: output.info Lines: 1 2 50.0 %
Date: 2017-07-14 16:53:18 Functions: 1 3 33.3 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*
       2             :  * Copyright (C) 2014 Google Inc. All rights reserved.
       3             :  *
       4             :  * Use of this source code is governed by a BSD-style license that can be
       5             :  * found in the LICENSE file.
       6             :  */
       7             : 
       8             : #ifndef SkEventTracer_DEFINED
       9             : #define SkEventTracer_DEFINED
      10             : 
      11             : // The class in this header defines the interface between Skia's internal
      12             : // tracing macros and an external entity (e.g., Chrome) that will consume them.
      13             : // Such an entity should subclass SkEventTracer and provide an instance of
      14             : // that event to SkEventTracer::SetInstance.
      15             : 
      16             : // If you're looking for the tracing macros to instrument Skia itself, those
      17             : // live in src/core/SkTraceEvent.h
      18             : 
      19             : #include "SkTypes.h"
      20             : 
      21             : // This will mark the trace event as disabled by default. The user will need
      22             : // to explicitly enable the event.
      23             : #define TRACE_DISABLED_BY_DEFAULT(name) "disabled-by-default-" name
      24             : 
      25           2 : class SK_API SkEventTracer {
      26             : public:
      27             : 
      28             :     typedef uint64_t Handle;
      29             : 
      30             :     static SkEventTracer* GetInstance();
      31             : 
      32             :     static void SetInstance(SkEventTracer*);
      33             : 
      34           0 :     virtual ~SkEventTracer() { }
      35             : 
      36             :     // The pointer returned from GetCategoryGroupEnabled() points to a
      37             :     // value with zero or more of the following bits. Used in this class only.
      38             :     // The TRACE_EVENT macros should only use the value as a bool.
      39             :     // These values must be in sync with macro values in trace_event.h in chromium.
      40             :     enum CategoryGroupEnabledFlags {
      41             :         // Category group enabled for the recording mode.
      42             :         kEnabledForRecording_CategoryGroupEnabledFlags = 1 << 0,
      43             :         // Category group enabled for the monitoring mode.
      44             :         kEnabledForMonitoring_CategoryGroupEnabledFlags = 1 << 1,
      45             :         // Category group enabled by SetEventCallbackEnabled().
      46             :         kEnabledForEventCallback_CategoryGroupEnabledFlags = 1 << 2,
      47             :     };
      48             : 
      49             :     virtual const uint8_t* getCategoryGroupEnabled(const char* name) = 0;
      50             :     virtual const char* getCategoryGroupName(
      51             :       const uint8_t* categoryEnabledFlag) = 0;
      52             : 
      53             :     virtual SkEventTracer::Handle
      54             :         addTraceEvent(char phase,
      55             :                       const uint8_t* categoryEnabledFlag,
      56             :                       const char* name,
      57             :                       uint64_t id,
      58             :                       int32_t numArgs,
      59             :                       const char** argNames,
      60             :                       const uint8_t* argTypes,
      61             :                       const uint64_t* argValues,
      62             :                       uint8_t flags) = 0;
      63             : 
      64             :     virtual void
      65             :         updateTraceEventDuration(const uint8_t* categoryEnabledFlag,
      66             :                                  const char* name,
      67             :                                  SkEventTracer::Handle handle) = 0;
      68             : };
      69             : 
      70             : #endif // SkEventTracer_DEFINED

Generated by: LCOV version 1.13