component_patcher_operation_out_of_process.h revision 1320f92c476a1ad9d19dba2a48c72b75566198e9
1// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef CHROME_BROWSER_COMPONENT_UPDATER_COMPONENT_PATCHER_OPERATION_OUT_OF_PROCESS_H_
6#define CHROME_BROWSER_COMPONENT_UPDATER_COMPONENT_PATCHER_OPERATION_OUT_OF_PROCESS_H_
7
8#include <string>
9
10#include "base/callback_forward.h"
11#include "base/macros.h"
12#include "base/memory/ref_counted.h"
13#include "components/component_updater/component_patcher_operation.h"
14
15namespace base {
16class FilePath;
17class SequencedTaskRunner;
18}  // namespace base
19
20namespace component_updater {
21
22class PatchHost;
23
24// Implements the DeltaUpdateOpPatch out-of-process patching.
25class ChromeOutOfProcessPatcher : public OutOfProcessPatcher {
26 public:
27  ChromeOutOfProcessPatcher();
28
29  // DeltaUpdateOpPatch::OutOfProcessPatcher implementation.
30  virtual void Patch(const std::string& operation,
31                     scoped_refptr<base::SequencedTaskRunner> task_runner,
32                     const base::FilePath& input_abs_path,
33                     const base::FilePath& patch_abs_path,
34                     const base::FilePath& output_abs_path,
35                     base::Callback<void(int result)> callback) OVERRIDE;
36
37 private:
38  virtual ~ChromeOutOfProcessPatcher();
39
40  scoped_refptr<PatchHost> host_;
41
42  DISALLOW_COPY_AND_ASSIGN(ChromeOutOfProcessPatcher);
43};
44
45}  // namespace component_updater
46
47#endif  // CHROME_BROWSER_COMPONENT_UPDATER_COMPONENT_PATCHER_OPERATION_OUT_OF_PROCESS_H_
48