/* * Copyright 2017 Google Inc. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #ifndef SkEventTracingPriv_DEFINED #define SkEventTracingPriv_DEFINED #include "SkMutex.h" /** * Construct and install an SkEventTracer, based on the mode, * defaulting to the --trace command line argument. */ void initializeEventTracingForTools(const char* mode = nullptr); /** * Helper class used by internal implementations of SkEventTracer to manage categories. */ class SkEventTracingCategories { public: SkEventTracingCategories() : fNumCategories(0) {} uint8_t* getCategoryGroupEnabled(const char* name); const char* getCategoryGroupName(const uint8_t* categoryEnabledFlag); private: enum { kMaxCategories = 256 }; struct CategoryState { uint8_t fEnabled; const char* fName; }; CategoryState fCategories[kMaxCategories]; int fNumCategories; SkMutex fMutex; }; #endif