1c8c1d9e03f4babd16833b0f8ccf6aab5fa6e8c7aBen Murdoch// Copyright 2016 the V8 project authors. All rights reserved. 2c8c1d9e03f4babd16833b0f8ccf6aab5fa6e8c7aBen Murdoch// Use of this source code is governed by a BSD-style license that can be 3c8c1d9e03f4babd16833b0f8ccf6aab5fa6e8c7aBen Murdoch// found in the LICENSE file. 4c8c1d9e03f4babd16833b0f8ccf6aab5fa6e8c7aBen Murdoch 5c8c1d9e03f4babd16833b0f8ccf6aab5fa6e8c7aBen Murdoch#ifndef V8_TRACING_TRACING_CATEGORY_OBSERVER_H_ 6c8c1d9e03f4babd16833b0f8ccf6aab5fa6e8c7aBen Murdoch#define V8_TRACING_TRACING_CATEGORY_OBSERVER_H_ 7c8c1d9e03f4babd16833b0f8ccf6aab5fa6e8c7aBen Murdoch 8c8c1d9e03f4babd16833b0f8ccf6aab5fa6e8c7aBen Murdoch#include "include/v8-platform.h" 9c8c1d9e03f4babd16833b0f8ccf6aab5fa6e8c7aBen Murdoch 10c8c1d9e03f4babd16833b0f8ccf6aab5fa6e8c7aBen Murdochnamespace v8 { 11c8c1d9e03f4babd16833b0f8ccf6aab5fa6e8c7aBen Murdochnamespace tracing { 12c8c1d9e03f4babd16833b0f8ccf6aab5fa6e8c7aBen Murdoch 13c8c1d9e03f4babd16833b0f8ccf6aab5fa6e8c7aBen Murdochclass TracingCategoryObserver : public Platform::TraceStateObserver { 14c8c1d9e03f4babd16833b0f8ccf6aab5fa6e8c7aBen Murdoch public: 15c8c1d9e03f4babd16833b0f8ccf6aab5fa6e8c7aBen Murdoch enum Mode { 16c8c1d9e03f4babd16833b0f8ccf6aab5fa6e8c7aBen Murdoch ENABLED_BY_NATIVE = 1 << 0, 17c8c1d9e03f4babd16833b0f8ccf6aab5fa6e8c7aBen Murdoch ENABLED_BY_TRACING = 1 << 1, 18c8c1d9e03f4babd16833b0f8ccf6aab5fa6e8c7aBen Murdoch ENABLED_BY_SAMPLING = 1 << 2, 19c8c1d9e03f4babd16833b0f8ccf6aab5fa6e8c7aBen Murdoch }; 20c8c1d9e03f4babd16833b0f8ccf6aab5fa6e8c7aBen Murdoch 21c8c1d9e03f4babd16833b0f8ccf6aab5fa6e8c7aBen Murdoch static void SetUp(); 22c8c1d9e03f4babd16833b0f8ccf6aab5fa6e8c7aBen Murdoch static void TearDown(); 23c8c1d9e03f4babd16833b0f8ccf6aab5fa6e8c7aBen Murdoch 24c8c1d9e03f4babd16833b0f8ccf6aab5fa6e8c7aBen Murdoch // v8::Platform::TraceStateObserver 25c8c1d9e03f4babd16833b0f8ccf6aab5fa6e8c7aBen Murdoch void OnTraceEnabled() final; 26c8c1d9e03f4babd16833b0f8ccf6aab5fa6e8c7aBen Murdoch void OnTraceDisabled() final; 27c8c1d9e03f4babd16833b0f8ccf6aab5fa6e8c7aBen Murdoch 28c8c1d9e03f4babd16833b0f8ccf6aab5fa6e8c7aBen Murdoch private: 29c8c1d9e03f4babd16833b0f8ccf6aab5fa6e8c7aBen Murdoch static TracingCategoryObserver* instance_; 30c8c1d9e03f4babd16833b0f8ccf6aab5fa6e8c7aBen Murdoch}; 31c8c1d9e03f4babd16833b0f8ccf6aab5fa6e8c7aBen Murdoch 32c8c1d9e03f4babd16833b0f8ccf6aab5fa6e8c7aBen Murdoch} // namespace tracing 33c8c1d9e03f4babd16833b0f8ccf6aab5fa6e8c7aBen Murdoch} // namespace v8 34c8c1d9e03f4babd16833b0f8ccf6aab5fa6e8c7aBen Murdoch 35c8c1d9e03f4babd16833b0f8ccf6aab5fa6e8c7aBen Murdoch#endif // V8_TRACING_TRACING_CATEGORY_OBSERVER_H_ 36