blob: 515ec7c9d8de434e61b04537ac5ec28235334574 [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;
Kelvin Zhangda1b3142020-09-24 17:09:02 -040034 FeatureFlag GetVirtualAbCompressionFeatureFlag() override;
Yifan Hongf5261562020-03-10 10:28:10 -070035 bool OptimizeOperation(const std::string& partition_name,
36 const InstallOperation& operation,
37 InstallOperation* optimized) override;
Yifan Hongdaac7322019-11-07 10:48:26 -080038 void Cleanup() override;
39 bool PreparePartitionsForUpdate(uint32_t source_slot,
40 uint32_t target_slot,
41 const DeltaArchiveManifest& manifest,
Yifan Hongf033ecb2020-01-07 18:13:56 -080042 bool update,
43 uint64_t* required_size) override;
Yifan Hongdaac7322019-11-07 10:48:26 -080044
Yifan Hong7b3910a2020-03-24 17:47:32 -070045 bool FinishUpdate(bool powerwash_required) override;
Yifan Hong90965502020-02-19 15:22:47 -080046 std::unique_ptr<AbstractAction> GetCleanupPreviousUpdateAction(
47 BootControlInterface* boot_control,
48 PrefsInterface* prefs,
49 CleanupPreviousUpdateActionDelegateInterface* delegate) override;
Yifan Hong6a6d0f12020-03-11 13:20:52 -070050 bool ResetUpdate(PrefsInterface* prefs) override;
Tianjie99d570d2020-06-04 14:57:19 -070051
52 bool ListDynamicPartitionsForSlot(
Tianjie3a55fc22021-02-13 16:02:22 -080053 uint32_t slot,
54 uint32_t current_slot,
55 std::vector<std::string>* partitions) override;
Tianjie99d570d2020-06-04 14:57:19 -070056 bool GetDeviceDir(std::string* path) override;
Tianjie24f96092020-06-30 12:26:25 -070057
58 bool VerifyExtentsForUntouchedPartitions(
59 uint32_t source_slot,
60 uint32_t target_slot,
61 const std::vector<std::string>& partitions) override;
Yifan Hongdaac7322019-11-07 10:48:26 -080062
Kelvin Zhang34618522020-09-28 09:21:02 -040063 std::unique_ptr<android::snapshot::ISnapshotWriter> OpenCowWriter(
64 const std::string& unsuffixed_partition_name,
65 const std::optional<std::string>&,
66 bool is_append) override;
Kelvin Zhang21a49912021-03-12 14:28:33 -050067
68 FileDescriptorPtr OpenCowFd(const std::string& unsuffixed_partition_name,
69 const std::optional<std::string>&,
70 bool is_append = false) override {
71 return nullptr;
72 }
Kelvin Zhang9d87d6d2020-10-23 17:03:59 -040073
74 bool MapAllPartitions() override;
75 bool UnmapAllPartitions() override;
Kelvin Zhangeb9de162020-11-16 15:47:28 -050076
Kelvin Zhangebd115e2021-03-08 16:10:25 -050077 bool IsDynamicPartition(const std::string& part_name, uint32_t slot) override;
Yifan Hongb0cbd392021-02-04 11:11:45 -080078 bool UpdateUsesSnapshotCompression() override;
Kelvin Zhang34618522020-09-28 09:21:02 -040079};
Yifan Hongdaac7322019-11-07 10:48:26 -080080} // namespace chromeos_update_engine
81
82#endif // UPDATE_ENGINE_COMMON_DYNAMIC_PARTITION_CONTROL_STUB_H_