1 //
2 // Copyright (C) 2020 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 #include <cstddef>
18 #include <memory>
19
20 #include <base/logging.h>
21
22 #include "update_engine/payload_consumer/vabc_partition_writer.h"
23
24 namespace chromeos_update_engine::partition_writer {
25
CreatePartitionWriter(const PartitionUpdate & partition_update,const InstallPlan::Partition & install_part,DynamicPartitionControlInterface * dynamic_control,size_t block_size,bool is_interactive,bool is_dynamic_partition)26 std::unique_ptr<PartitionWriter> CreatePartitionWriter(
27 const PartitionUpdate& partition_update,
28 const InstallPlan::Partition& install_part,
29 DynamicPartitionControlInterface* dynamic_control,
30 size_t block_size,
31 bool is_interactive,
32 bool is_dynamic_partition) {
33 if (dynamic_control && dynamic_control->UpdateUsesSnapshotCompression() &&
34 is_dynamic_partition) {
35 LOG(INFO)
36 << "Virtual AB Compression Enabled, using VABC Partition Writer for `"
37 << install_part.name << '`';
38 return std::make_unique<VABCPartitionWriter>(partition_update,
39 install_part,
40 dynamic_control,
41 block_size,
42 is_interactive);
43 } else {
44 LOG(INFO) << "Virtual AB Compression disabled, using Partition Writer for `"
45 << install_part.name << '`';
46 return std::make_unique<PartitionWriter>(partition_update,
47 install_part,
48 dynamic_control,
49 block_size,
50 is_interactive);
51 }
52 }
53 } // namespace chromeos_update_engine::partition_writer
54