// Copyright 2016 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifdef UNSAFE_BUFFERS_BUILD // TODO(crbug.com/40284755): Remove this and spanify to fix the errors. #pragma allow_unsafe_buffers #endif #ifndef BASE_TRACE_EVENT_CATEGORY_REGISTRY_H_ #define BASE_TRACE_EVENT_CATEGORY_REGISTRY_H_ #include <stddef.h> #include <stdint.h> #include <atomic> #include "base/base_export.h" #include "base/check_op.h" #include "base/containers/span.h" #include "base/memory/raw_ptr.h" #include "base/trace_event/builtin_categories.h" #include "base/trace_event/common/trace_event_common.h" #include "base/trace_event/trace_category.h" #include "build/build_config.h" namespace base { namespace trace_event { class TraceCategoryTest; class TraceLog; // Allows fast and thread-safe acces to the state of all tracing categories. // All the methods in this class can be concurrently called on multiple threads, // unless otherwise noted (e.g., GetOrCreateCategoryLocked). // The reason why this is a fully static class with global state is to allow to // statically define known categories as global linker-initialized structs, // without requiring static initializers. class BASE_EXPORT CategoryRegistry { … }; } // namespace trace_event } // namespace base #endif // BASE_TRACE_EVENT_CATEGORY_REGISTRY_H_