Android-cuttlefish cvd tool
disk_builder.h
Go to the documentation of this file.
1//
2// Copyright (C) 2022 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#pragma once
17
18#include <string>
19#include <vector>
20
24
25namespace cuttlefish {
26
28 public:
29 DiskBuilder& EntireDisk(std::string path) &;
30 DiskBuilder EntireDisk(std::string path) &&;
31
32 DiskBuilder& Partitions(std::vector<ImagePartition> partitions) &;
33 DiskBuilder Partitions(std::vector<ImagePartition> partitions) &&;
34
35 DiskBuilder& HeaderPath(std::string header_path) &;
36 DiskBuilder HeaderPath(std::string header_path) &&;
37
38 DiskBuilder& FooterPath(std::string footer_path) &;
39 DiskBuilder FooterPath(std::string footer_path) &&;
40
41 DiskBuilder& CrosvmPath(std::string crosvm_path) &;
42 DiskBuilder CrosvmPath(std::string crosvm_path) &&;
43
44 DiskBuilder& VmManager(VmmMode vm_manager) &;
45 DiskBuilder VmManager(VmmMode vm_manager) &&;
46
47 DiskBuilder& ConfigPath(std::string config_path) &;
48 DiskBuilder ConfigPath(std::string config_path) &&;
49
50 DiskBuilder& CompositeDiskPath(std::string composite_disk_path) &;
51 DiskBuilder CompositeDiskPath(std::string composite_disk_path) &&;
52
53 DiskBuilder& OverlayPath(std::string overlay_path) &;
54 DiskBuilder OverlayPath(std::string overlay_path) &&;
55
56 DiskBuilder& ResumeIfPossible(bool resume_if_possible) &;
57 DiskBuilder ResumeIfPossible(bool resume_if_possible) &&;
58
59 DiskBuilder& ReadOnly(bool read_only) &;
60 DiskBuilder ReadOnly(bool read_only) &&;
61
67
68 private:
70
71 std::vector<ImagePartition> partitions_;
72 std::string entire_disk_;
73 std::string header_path_;
74 std::string footer_path_;
76 std::string crosvm_path_;
77 std::string config_path_;
79 std::string overlay_path_;
81 bool read_only_ = true;
82};
83
84} // namespace cuttlefish
Definition: expected.h:86
Definition: disk_builder.h:27
bool resume_if_possible_
Definition: disk_builder.h:80
DiskBuilder & VmManager(VmmMode vm_manager) &
Definition: disk_builder.cpp:94
std::string crosvm_path_
Definition: disk_builder.h:76
std::vector< ImagePartition > partitions_
Definition: disk_builder.h:71
std::string overlay_path_
Definition: disk_builder.h:79
std::string entire_disk_
Definition: disk_builder.h:72
Result< std::string > TextConfig()
Definition: disk_builder.cpp:148
VmmMode vm_manager_
Definition: disk_builder.h:75
bool read_only_
Definition: disk_builder.h:81
DiskBuilder & CrosvmPath(std::string crosvm_path) &
Definition: disk_builder.cpp:85
DiskBuilder & FooterPath(std::string footer_path) &
Definition: disk_builder.cpp:76
DiskBuilder & Partitions(std::vector< ImagePartition > partitions) &
Definition: disk_builder.cpp:58
DiskBuilder & CompositeDiskPath(std::string composite_disk_path) &
Definition: disk_builder.cpp:112
DiskBuilder & ConfigPath(std::string config_path) &
Definition: disk_builder.cpp:103
Result< bool > BuildCompositeDiskIfNecessary()
Definition: disk_builder.cpp:200
Result< bool > BuildOverlayIfNecessary()
Definition: disk_builder.cpp:229
DiskBuilder & HeaderPath(std::string header_path) &
Definition: disk_builder.cpp:67
std::string composite_disk_path_
Definition: disk_builder.h:78
DiskBuilder & OverlayPath(std::string overlay_path) &
Definition: disk_builder.cpp:121
DiskBuilder & ResumeIfPossible(bool resume_if_possible) &
Definition: disk_builder.cpp:130
std::string header_path_
Definition: disk_builder.h:73
DiskBuilder & EntireDisk(std::string path) &
Definition: disk_builder.cpp:49
std::string config_path_
Definition: disk_builder.h:77
DiskBuilder & ReadOnly(bool read_only) &
Definition: disk_builder.cpp:139
Result< bool > WillRebuildCompositeDisk()
Definition: disk_builder.cpp:165
std::string footer_path_
Definition: disk_builder.h:74
Definition: alloc_utils.cpp:23
VmmMode
Definition: vmm_mode.h:28