|  | // Copyright 2016 the V8 project authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | #include <string.h> | 
|  |  | 
|  | #include "include/libplatform/v8-tracing.h" | 
|  | #include "src/base/logging.h" | 
|  |  | 
|  | namespace v8 { | 
|  |  | 
|  | class Isolate; | 
|  |  | 
|  | namespace platform { | 
|  | namespace tracing { | 
|  |  | 
|  | TraceConfig* TraceConfig::CreateDefaultTraceConfig() { | 
|  | TraceConfig* trace_config = new TraceConfig(); | 
|  | trace_config->included_categories_.push_back("v8"); | 
|  | return trace_config; | 
|  | } | 
|  |  | 
|  | bool TraceConfig::IsCategoryGroupEnabled(const char* category_group) const { | 
|  | std::stringstream category_stream(category_group); | 
|  | while (category_stream.good()) { | 
|  | std::string category; | 
|  | getline(category_stream, category, ','); | 
|  | for (const auto& included_category : included_categories_) { | 
|  | if (category == included_category) return true; | 
|  | } | 
|  | } | 
|  | return false; | 
|  | } | 
|  |  | 
|  | void TraceConfig::AddIncludedCategory(const char* included_category) { | 
|  | DCHECK(included_category != nullptr && strlen(included_category) > 0); | 
|  | included_categories_.push_back(included_category); | 
|  | } | 
|  |  | 
|  | }  // namespace tracing | 
|  | }  // namespace platform | 
|  | }  // namespace v8 |