| OLD | NEW |
| 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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 // This class works with command lines: building and parsing. | 5 // This class works with command lines: building and parsing. |
| 6 // Switches can optionally have a value attached using an equals sign, | 6 // Switches can optionally have a value attached using an equals sign, |
| 7 // as in "-switch=value". Arguments that aren't prefixed with a | 7 // as in "-switch=value". Arguments that aren't prefixed with a |
| 8 // switch prefix are saved as extra arguments. An argument of "--" | 8 // switch prefix are saved as extra arguments. An argument of "--" |
| 9 // will terminate switch parsing, causing everything after to be | 9 // will terminate switch parsing, causing everything after to be |
| 10 // considered as extra arguments. | 10 // considered as extra arguments. |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 72 // renderers show up with --type=renderer. | 72 // renderers show up with --type=renderer. |
| 73 static void SetProcTitle(); | 73 static void SetProcTitle(); |
| 74 #endif | 74 #endif |
| 75 | 75 |
| 76 // Destroys the current process CommandLine singleton. This is necessary if | 76 // Destroys the current process CommandLine singleton. This is necessary if |
| 77 // you want to reset the base library to its initial state (for example in an | 77 // you want to reset the base library to its initial state (for example in an |
| 78 // outer library that needs to be able to terminate, and be re-initialized). | 78 // outer library that needs to be able to terminate, and be re-initialized). |
| 79 // If Init is called only once, e.g. in main(), calling Reset() is not | 79 // If Init is called only once, e.g. in main(), calling Reset() is not |
| 80 // necessary. | 80 // necessary. |
| 81 static void Reset(); | 81 static void Reset(); |
| 82 // The same function snuck into this class under two different names; | |
| 83 // this one remains for backwards compat with the older o3d build. | |
| 84 static void Terminate() { Reset(); } | |
| 85 | 82 |
| 86 // Get the singleton CommandLine representing the current process's | 83 // Get the singleton CommandLine representing the current process's |
| 87 // command line. Note: returned value is mutable, but not thread safe; | 84 // command line. Note: returned value is mutable, but not thread safe; |
| 88 // only mutate if you know what you're doing! | 85 // only mutate if you know what you're doing! |
| 89 static CommandLine* ForCurrentProcess() { | 86 static CommandLine* ForCurrentProcess() { |
| 90 DCHECK(current_process_commandline_); | 87 DCHECK(current_process_commandline_); |
| 91 return current_process_commandline_; | 88 return current_process_commandline_; |
| 92 } | 89 } |
| 93 | 90 |
| 94 // Returns true if this command line contains the given switch. | 91 // Returns true if this command line contains the given switch. |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 127 return argv_; | 124 return argv_; |
| 128 } | 125 } |
| 129 // Try to match the same result as command_line_string() would get you | 126 // Try to match the same result as command_line_string() would get you |
| 130 // on windows. | 127 // on windows. |
| 131 std::string command_line_string() const; | 128 std::string command_line_string() const; |
| 132 #endif | 129 #endif |
| 133 | 130 |
| 134 // Returns the program part of the command line string (the first item). | 131 // Returns the program part of the command line string (the first item). |
| 135 FilePath GetProgram() const; | 132 FilePath GetProgram() const; |
| 136 | 133 |
| 137 // Return a copy of the string prefixed with a switch prefix. | |
| 138 // Used internally. | |
| 139 static std::wstring PrefixedSwitchString(const std::string& switch_string); | |
| 140 | |
| 141 // Return a copy of the string prefixed with a switch prefix, | |
| 142 // and appended with the given value. Used internally. | |
| 143 static std::wstring PrefixedSwitchStringWithValue( | |
| 144 const std::string& switch_string, | |
| 145 const std::wstring& value_string); | |
| 146 | |
| 147 // Append a switch to the command line. | 134 // Append a switch to the command line. |
| 148 void AppendSwitch(const std::string& switch_string); | 135 void AppendSwitch(const std::string& switch_string); |
| 149 | 136 |
| 150 // Append a switch and value to the command line. | 137 // Append a switch and value to the command line. |
| 151 void AppendSwitchPath(const std::string& switch_string, const FilePath& path); | 138 void AppendSwitchPath(const std::string& switch_string, const FilePath& path); |
| 152 void AppendSwitchNative(const std::string& switch_string, | 139 void AppendSwitchNative(const std::string& switch_string, |
| 153 const StringType& value); | 140 const StringType& value); |
| 154 void AppendSwitchASCII(const std::string& switch_string, | 141 void AppendSwitchASCII(const std::string& switch_string, |
| 155 const std::string& value); | 142 const std::string& value); |
| 156 | 143 |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 222 std::vector<StringType> args_; | 209 std::vector<StringType> args_; |
| 223 | 210 |
| 224 // We allow copy constructors, because a common pattern is to grab a | 211 // We allow copy constructors, because a common pattern is to grab a |
| 225 // copy of the current process's command line and then add some | 212 // copy of the current process's command line and then add some |
| 226 // flags to it. E.g.: | 213 // flags to it. E.g.: |
| 227 // CommandLine cl(*CommandLine::ForCurrentProcess()); | 214 // CommandLine cl(*CommandLine::ForCurrentProcess()); |
| 228 // cl.AppendSwitch(...); | 215 // cl.AppendSwitch(...); |
| 229 }; | 216 }; |
| 230 | 217 |
| 231 #endif // BASE_COMMAND_LINE_H_ | 218 #endif // BASE_COMMAND_LINE_H_ |
| OLD | NEW |