Index: base/commands.h |
diff --git a/base/commands.h b/base/commands.h |
deleted file mode 100644 |
index c2a857bd70784a5e8df0ef886661507d3fd43b87..0000000000000000000000000000000000000000 |
--- a/base/commands.h |
+++ /dev/null |
@@ -1,159 +0,0 @@ |
-// Copyright 2005-2009 Google Inc. |
-// |
-// Licensed under the Apache License, Version 2.0 (the "License"); |
-// you may not use this file except in compliance with the License. |
-// You may obtain a copy of the License at |
-// |
-// http://www.apache.org/licenses/LICENSE-2.0 |
-// |
-// Unless required by applicable law or agreed to in writing, software |
-// distributed under the License is distributed on an "AS IS" BASIS, |
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
-// See the License for the specific language governing permissions and |
-// limitations under the License. |
-// ======================================================================== |
-// |
-// Parse command-line options |
-// |
-// Class CommandParsing supports two kinds of command line options: |
-// 1) Traditional option, like "-b -v 100" |
-// 2) Name-value-pairs, like "b=&v=100" |
- |
-#ifndef OMAHA_COMMON_COMMANDS_H_ |
-#define OMAHA_COMMON_COMMANDS_H_ |
- |
-#include <atlstr.h> |
-#include <vector> |
-#include "base/basictypes.h" |
- |
-namespace omaha { |
- |
-enum ThreeValue { |
- VALUE_NOT_SET = 0, |
- TRUE_VALUE = 1, |
- FALSE_VALUE = 2 |
-}; |
- |
-enum CommandOptionType { |
- COMMAND_OPTION_BOOL = 0x1, |
- COMMAND_OPTION_INT = 0x2, |
- COMMAND_OPTION_UINT = 0x3, |
- COMMAND_OPTION_STRING = 0x4, |
- COMMAND_OPTION_THREE = 0x5, |
- COMMAND_OPTION_UNESCAPE = 0x1000, |
- COMMAND_OPTION_MULTIPLE = 0x2000 |
-}; |
- |
-#define COMMAND_OPTION_FLAGS_MASK 0x0FFF |
- |
-struct CommandOption { |
- void Init(const TCHAR* name, CommandOptionType type, |
- void* value, int max_value_len); |
- void Copy(const CommandOption& option); |
- |
- CString name; |
- CommandOptionType type; |
- void* value; |
- int max_value_len; |
-}; |
- |
-class CommandParsingSimple { |
- public: |
- // Static Helper function that splits a command line |
- // string into executable and any arguments |
- static HRESULT SplitExeAndArgs(const TCHAR* cmd_line, |
- CString* exe, |
- CString* args); |
- |
- // Static Helper function that splits a command line |
- // string into executable and any arguments. Tries to |
- // guess the positioning of the EXE argument in cases |
- // where the EXE argument has spaces and is not enclosed |
- // in quotes. For instance, earlier versions of Google Desktop |
- // used to have an "Uninstall" string of the form: |
- // C:\Program Files\Google\Google Toolbar\GoogleToolbarSetup.exe -uninstall |
- // This function is meant to accomodate such cases. |
- static HRESULT SplitExeAndArgsGuess(const TCHAR* cmd_line, |
- CString* exe, |
- CString* args); |
- |
- // Static Helper function that returns the number of arguments |
- // in the passed in cmd_line |
- static HRESULT GetNumberOfArgs(const TCHAR* cmd_line, uint32* number_of_args); |
- |
- // Converted to a string |
- HRESULT ToString(CString* cmd_line); |
- |
- protected: |
- // Constructor |
- CommandParsingSimple(); |
- |
- // Constructor |
- explicit CommandParsingSimple(TCHAR separator); |
- |
- // Parse a command line string into args |
- HRESULT ParseSimple(const TCHAR* cmd_line); |
- |
- // Get the arg at specified position from the command line |
- HRESULT GetAt(uint32 position, CString* arg); |
- |
- // Remove the arg at specified position from the command line |
- HRESULT RemoveAt(uint32 position); |
- |
- TCHAR separator_; // Separator |
- std::vector<CString> args_; // Splitted args |
- |
- |
- private: |
- DISALLOW_EVIL_CONSTRUCTORS(CommandParsingSimple); |
-}; |
- |
- |
-class CommandParsing : public CommandParsingSimple { |
- public: |
- // Constructor |
- CommandParsing(CommandOption* options, int options_count); |
- |
- CommandParsing(CommandOption* options, int options_count, |
- TCHAR separator, bool as_name_value_pair); |
- |
- // Parse a command line string |
- HRESULT Parse(const TCHAR* cmd_line, bool ignore_unknown_args); |
- |
- // Parse a list of command line arguments |
- HRESULT ParseArguments(int argc, TCHAR* argv[]); |
- |
- // Remove an option from the command line |
- HRESULT Remove(const TCHAR* option_name); |
- |
- private: |
- // Internal parsing |
- HRESULT InternalParse(bool ignore_unknown_args); |
- |
- // Extract the name |
- HRESULT ExtractName(CString* name, std::vector<CString>::const_iterator* it); |
- |
- // Extract the value |
- // Also validate the value length if necessary |
- HRESULT ExtractValue(const CommandOption& option, |
- CString* value, |
- std::vector<CString>::const_iterator* it, |
- const std::vector<CString>::const_iterator& end); |
- |
- // Set the parsed value |
- template<class T> |
- static void SetParsedValue(const CommandOption& option, const T& value); |
- |
- // Helper function to find an option in the CommandOption list |
- int FindOption(const TCHAR* option_name); |
- |
- CommandOption* options_; // Command-line option list |
- int options_count_; // Count of command-line options |
- bool as_name_value_pair_; // Parse as name-value-pair |
- |
- DISALLOW_EVIL_CONSTRUCTORS(CommandParsing); |
-}; |
- |
-} // namespace omaha |
- |
-#endif // OMAHA_COMMON_COMMANDS_H_ |