| // Copyright 2017 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 COMPONENTS_ZUCCHINI_ZUCCHINI_COMMANDS_H_ | 
 | #define COMPONENTS_ZUCCHINI_ZUCCHINI_COMMANDS_H_ | 
 |  | 
 | #include <iosfwd> | 
 | #include <vector> | 
 |  | 
 | #include "base/files/file_path.h" | 
 | #include "components/zucchini/zucchini.h" | 
 |  | 
 | // Zucchini commands and tools that can be invoked from command-line. | 
 |  | 
 | namespace base { | 
 |  | 
 | class CommandLine; | 
 |  | 
 | }  // namespace base | 
 |  | 
 | // Aggregated parameter for Main*() functions, to simplify interface. | 
 | struct MainParams { | 
 |   const base::CommandLine& command_line; | 
 |   const std::vector<base::FilePath>& file_paths; | 
 |   std::ostream& out; | 
 |   std::ostream& err; | 
 | }; | 
 |  | 
 | // Signature of a Zucchini Command Function. | 
 | using CommandFunction = zucchini::status::Code (*)(MainParams); | 
 |  | 
 | // Command Function: Patch generation. | 
 | zucchini::status::Code MainGen(MainParams params); | 
 |  | 
 | // Command Function: Patch application. | 
 | zucchini::status::Code MainApply(MainParams params); | 
 |  | 
 | // Command Function: Read and dump references from an executable. | 
 | zucchini::status::Code MainRead(MainParams params); | 
 |  | 
 | // Command Function: Scan an archive file and detect executables. | 
 | zucchini::status::Code MainDetect(MainParams params); | 
 |  | 
 | // Command Function: Scan two archive files and match detected executables. | 
 | zucchini::status::Code MainMatch(MainParams params); | 
 |  | 
 | // Command Function: Compute CRC-32 of a file. | 
 | zucchini::status::Code MainCrc32(MainParams params); | 
 |  | 
 | #endif  // COMPONENTS_ZUCCHINI_ZUCCHINI_COMMANDS_H_ |