• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #pragma once
2 
3 #include <string>
4 //
5 #include <fruit/fruit.h>
6 
7 #include "host/libs/config/cuttlefish_config.h"
8 #include "host/libs/config/feature.h"
9 
10 namespace cuttlefish {
11 
12 class DataImagePath {
13  public:
14   virtual ~DataImagePath() = default;
15   virtual const std::string& Path() const = 0;
16 };
17 
18 class InitializeDataImage : public SetupFeature {};
19 
20 fruit::Component<DataImagePath> FixedDataImagePathComponent(
21     const std::string* path);
22 fruit::Component<fruit::Required<const CuttlefishConfig, DataImagePath>,
23                  InitializeDataImage>
24 InitializeDataImageComponent();
25 
26 class InitializeEspImage : public SetupFeature {};
27 
28 fruit::Component<fruit::Required<const CuttlefishConfig>,
29     InitializeEspImage> InitializeEspImageComponent(
30     const std::string* esp_image, const std::string* kernel_path,
31     const std::string* initramfs_path, const std::string* root_fs,
32     const CuttlefishConfig* config);
33 
34 bool CreateBlankImage(
35     const std::string& image, int num_mb, const std::string& image_fmt);
36 
37 class MiscImagePath {
38  public:
39   virtual ~MiscImagePath() = default;
40   virtual const std::string& Path() const = 0;
41 };
42 
43 class InitializeMiscImage : public SetupFeature {};
44 
45 fruit::Component<MiscImagePath> FixedMiscImagePathComponent(
46     const std::string* path);
47 fruit::Component<fruit::Required<MiscImagePath>, InitializeMiscImage>
48 InitializeMiscImageComponent();
49 
50 } // namespace cuttlefish
51