diff options
Diffstat (limited to 'win8/delegate_execute/delegate_execute_operation.h')
-rw-r--r-- | win8/delegate_execute/delegate_execute_operation.h | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/win8/delegate_execute/delegate_execute_operation.h b/win8/delegate_execute/delegate_execute_operation.h new file mode 100644 index 0000000..59acfd7a --- /dev/null +++ b/win8/delegate_execute/delegate_execute_operation.h @@ -0,0 +1,52 @@ +// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef WIN8_DELEGATE_EXECUTE_DELEGATE_EXECUTE_OPERATION_H_ +#define WIN8_DELEGATE_EXECUTE_DELEGATE_EXECUTE_OPERATION_H_ + +#include <atldef.h> + +#include "base/basictypes.h" +#include "base/file_path.h" + +class CommandLine; + +namespace delegate_execute { + +// Parses a portion of the DelegateExecute handler's command line to determine +// the desired operation. +class DelegateExecuteOperation { + public: + enum OperationType { + EXE_MODULE, + RELAUNCH_CHROME, + }; + + DelegateExecuteOperation(); + ~DelegateExecuteOperation(); + + void Initialize(const CommandLine* command_line); + + OperationType operation_type() const { + return operation_type_; + } + + // Returns the argument to the --relaunch-shortcut switch. Valid only when + // the operation is RELAUNCH_CHROME. + const FilePath& relaunch_shortcut() const { + ATLASSERT(operation_type_ == RELAUNCH_CHROME); + return relaunch_shortcut_; + } + + private: + void Clear(); + + OperationType operation_type_; + FilePath relaunch_shortcut_; + DISALLOW_COPY_AND_ASSIGN(DelegateExecuteOperation); +}; + +} // namespace delegate_execute + +#endif // WIN8_DELEGATE_EXECUTE_DELEGATE_EXECUTE_OPERATION_H_ |