1// Copyright 2016 the V8 project authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include <string.h>
6
7#include "include/libplatform/v8-tracing.h"
8#include "src/base/logging.h"
9
10namespace v8 {
11
12class Isolate;
13
14namespace platform {
15namespace tracing {
16
17TraceConfig* TraceConfig::CreateDefaultTraceConfig() {
18  TraceConfig* trace_config = new TraceConfig();
19  trace_config->included_categories_.push_back("v8");
20  return trace_config;
21}
22
23bool TraceConfig::IsCategoryGroupEnabled(const char* category_group) const {
24  std::stringstream category_stream(category_group);
25  while (category_stream.good()) {
26    std::string category;
27    getline(category_stream, category, ',');
28    for (const auto& included_category : included_categories_) {
29      if (category == included_category) return true;
30    }
31  }
32  return false;
33}
34
35void TraceConfig::AddIncludedCategory(const char* included_category) {
36  DCHECK(included_category != nullptr && strlen(included_category) > 0);
37  included_categories_.push_back(included_category);
38}
39
40}  // namespace tracing
41}  // namespace platform
42}  // namespace v8
43