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 
10 namespace v8 {
11 
12 class Isolate;
13 
14 namespace platform {
15 namespace tracing {
16 
CreateDefaultTraceConfig()17 TraceConfig* TraceConfig::CreateDefaultTraceConfig() {
18   TraceConfig* trace_config = new TraceConfig();
19   trace_config->included_categories_.push_back("v8");
20   return trace_config;
21 }
22 
IsCategoryGroupEnabled(const char * category_group) const23 bool 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 
AddIncludedCategory(const char * included_category)35 void 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