Don't show supervised user as "already on this device" while they're being imported.
[chromium-blink-merge.git] / base / trace_event / trace_options.cc
blob7cab61dbbd0726f8a4fb85f69c60917fe8e7a88d
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
3 // found in the LICENSE file.
5 #include "base/trace_event/trace_options.h"
7 #include "base/logging.h"
8 #include "base/strings/string_split.h"
10 namespace base {
11 namespace trace_event {
13 namespace {
15 // String options that can be used to initialize TraceOptions.
16 const char kRecordUntilFull[] = "record-until-full";
17 const char kRecordContinuously[] = "record-continuously";
18 const char kRecordAsMuchAsPossible[] = "record-as-much-as-possible";
19 const char kTraceToConsole[] = "trace-to-console";
20 const char kEnableSampling[] = "enable-sampling";
21 const char kEnableSystrace[] = "enable-systrace";
22 const char kEnableArgumentFilter[] = "enable-argument-filter";
24 } // namespace
26 bool TraceOptions::SetFromString(const std::string& options_string) {
27 record_mode = RECORD_UNTIL_FULL;
28 enable_sampling = false;
29 enable_systrace = false;
31 std::vector<std::string> split;
32 std::vector<std::string>::iterator iter;
33 base::SplitString(options_string, ',', &split);
34 for (iter = split.begin(); iter != split.end(); ++iter) {
35 if (*iter == kRecordUntilFull) {
36 record_mode = RECORD_UNTIL_FULL;
37 } else if (*iter == kRecordContinuously) {
38 record_mode = RECORD_CONTINUOUSLY;
39 } else if (*iter == kTraceToConsole) {
40 record_mode = ECHO_TO_CONSOLE;
41 } else if (*iter == kRecordAsMuchAsPossible) {
42 record_mode = RECORD_AS_MUCH_AS_POSSIBLE;
43 } else if (*iter == kEnableSampling) {
44 enable_sampling = true;
45 } else if (*iter == kEnableSystrace) {
46 enable_systrace = true;
47 } else if (*iter == kEnableArgumentFilter) {
48 enable_argument_filter = true;
49 } else {
50 return false;
53 return true;
56 std::string TraceOptions::ToString() const {
57 std::string ret;
58 switch (record_mode) {
59 case RECORD_UNTIL_FULL:
60 ret = kRecordUntilFull;
61 break;
62 case RECORD_CONTINUOUSLY:
63 ret = kRecordContinuously;
64 break;
65 case ECHO_TO_CONSOLE:
66 ret = kTraceToConsole;
67 break;
68 case RECORD_AS_MUCH_AS_POSSIBLE:
69 ret = kRecordAsMuchAsPossible;
70 break;
71 default:
72 NOTREACHED();
74 if (enable_sampling)
75 ret = ret + "," + kEnableSampling;
76 if (enable_systrace)
77 ret = ret + "," + kEnableSystrace;
78 if (enable_argument_filter)
79 ret = ret + "," + kEnableArgumentFilter;
80 return ret;
83 } // namespace trace_event
84 } // namespace base