OLD | NEW |
1 // Copyright (c) 2015 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "base/trace_event/trace_config.h" | 5 #include "base/trace_event/trace_config.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <utility> | 9 #include <utility> |
10 | 10 |
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
162 void TraceConfig::EventFilterConfig::AddExcludedCategory( | 162 void TraceConfig::EventFilterConfig::AddExcludedCategory( |
163 const std::string& category) { | 163 const std::string& category) { |
164 excluded_categories_.push_back(category); | 164 excluded_categories_.push_back(category); |
165 } | 165 } |
166 | 166 |
167 void TraceConfig::EventFilterConfig::SetArgs( | 167 void TraceConfig::EventFilterConfig::SetArgs( |
168 std::unique_ptr<base::DictionaryValue> args) { | 168 std::unique_ptr<base::DictionaryValue> args) { |
169 args_ = std::move(args); | 169 args_ = std::move(args); |
170 } | 170 } |
171 | 171 |
| 172 bool TraceConfig::EventFilterConfig::GetArgAsSet( |
| 173 const char* key, |
| 174 std::unordered_set<std::string>* out_set) const { |
| 175 const ListValue* list = nullptr; |
| 176 if (!args_->GetList(key, &list)) |
| 177 return false; |
| 178 for (size_t i = 0; i < list->GetSize(); ++i) { |
| 179 std::string value; |
| 180 if (list->GetString(i, &value)) |
| 181 out_set->insert(value); |
| 182 } |
| 183 return true; |
| 184 } |
| 185 |
172 bool TraceConfig::EventFilterConfig::IsCategoryGroupEnabled( | 186 bool TraceConfig::EventFilterConfig::IsCategoryGroupEnabled( |
173 const char* category_group_name) const { | 187 const char* category_group_name) const { |
174 CStringTokenizer category_group_tokens( | 188 CStringTokenizer category_group_tokens( |
175 category_group_name, category_group_name + strlen(category_group_name), | 189 category_group_name, category_group_name + strlen(category_group_name), |
176 ","); | 190 ","); |
177 while (category_group_tokens.GetNext()) { | 191 while (category_group_tokens.GetNext()) { |
178 std::string category_group_token = category_group_tokens.token(); | 192 std::string category_group_token = category_group_tokens.token(); |
179 | 193 |
180 for (const auto& excluded_category : excluded_categories_) { | 194 for (const auto& excluded_category : excluded_categories_) { |
181 if (base::MatchPattern(category_group_token, excluded_category)) { | 195 if (base::MatchPattern(category_group_token, excluded_category)) { |
(...skipping 667 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
849 StringPiece str) { | 863 StringPiece str) { |
850 return str.empty() || str.front() == ' ' || str.back() == ' '; | 864 return str.empty() || str.front() == ' ' || str.back() == ' '; |
851 } | 865 } |
852 | 866 |
853 bool TraceConfig::HasIncludedPatterns() const { | 867 bool TraceConfig::HasIncludedPatterns() const { |
854 return !included_categories_.empty(); | 868 return !included_categories_.empty(); |
855 } | 869 } |
856 | 870 |
857 } // namespace trace_event | 871 } // namespace trace_event |
858 } // namespace base | 872 } // namespace base |
OLD | NEW |