blob: 28e3e6a50f48f92c9814cb44ce66d04115bc660d [file] [log] [blame]
Yifan Hongdaac7322019-11-07 10:48:26 -08001//
2// Copyright (C) 2019 The Android Open Source Project
3//
4// Licensed under the Apache License, Version 2.0 (the "License");
5// you may not use this file except in compliance with the License.
6// You may obtain a copy of the License at
7//
8// http://www.apache.org/licenses/LICENSE-2.0
9//
10// Unless required by applicable law or agreed to in writing, software
11// distributed under the License is distributed on an "AS IS" BASIS,
12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13// See the License for the specific language governing permissions and
14// limitations under the License.
15//
16
17#ifndef UPDATE_ENGINE_COMMON_DYNAMIC_PARTITION_CONTROL_STUB_H_
18#define UPDATE_ENGINE_COMMON_DYNAMIC_PARTITION_CONTROL_STUB_H_
19
20#include <stdint.h>
21
Yifan Hong90965502020-02-19 15:22:47 -080022#include <memory>
Yifan Hongdaac7322019-11-07 10:48:26 -080023#include <string>
Tianjie99d570d2020-06-04 14:57:19 -070024#include <vector>
Yifan Hongdaac7322019-11-07 10:48:26 -080025
26#include "update_engine/common/dynamic_partition_control_interface.h"
27
28namespace chromeos_update_engine {
29
30class DynamicPartitionControlStub : public DynamicPartitionControlInterface {
31 public:
32 FeatureFlag GetDynamicPartitionsFeatureFlag() override;
33 FeatureFlag GetVirtualAbFeatureFlag() override;
Yifan Hongf5261562020-03-10 10:28:10 -070034 bool OptimizeOperation(const std::string& partition_name,
35 const InstallOperation& operation,
36 InstallOperation* optimized) override;
Yifan Hongdaac7322019-11-07 10:48:26 -080037 void Cleanup() override;
38 bool PreparePartitionsForUpdate(uint32_t source_slot,
39 uint32_t target_slot,
40 const DeltaArchiveManifest& manifest,
Yifan Hongf033ecb2020-01-07 18:13:56 -080041 bool update,
42 uint64_t* required_size) override;
Yifan Hongdaac7322019-11-07 10:48:26 -080043
Yifan Hong7b3910a2020-03-24 17:47:32 -070044 bool FinishUpdate(bool powerwash_required) override;
Yifan Hong90965502020-02-19 15:22:47 -080045 std::unique_ptr<AbstractAction> GetCleanupPreviousUpdateAction(
46 BootControlInterface* boot_control,
47 PrefsInterface* prefs,
48 CleanupPreviousUpdateActionDelegateInterface* delegate) override;
Yifan Hong6a6d0f12020-03-11 13:20:52 -070049 bool ResetUpdate(PrefsInterface* prefs) override;
Tianjie99d570d2020-06-04 14:57:19 -070050
51 bool ListDynamicPartitionsForSlot(
52 uint32_t current_slot, std::vector<std::string>* partitions) override;
53 bool GetDeviceDir(std::string* path) override;
Yifan Hongdaac7322019-11-07 10:48:26 -080054};
55
56} // namespace chromeos_update_engine
57
58#endif // UPDATE_ENGINE_COMMON_DYNAMIC_PARTITION_CONTROL_STUB_H_