| 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_
|
|
|