Android-cuttlefish cvd tool
fetcher_config.h
Go to the documentation of this file.
1/*
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#pragma once
17
18#include <map>
19#include <memory>
20#include <ostream>
21#include <string>
22
24
25namespace Json {
26class Value;
27}
28
29namespace cuttlefish {
30
31// Order in enum is not guaranteed to be stable, serialized as a string.
32enum class FileSource {
44};
45
46/*
47 * Attempts to answer the general question "where did this file come from, and
48 * what purpose is it serving?
49 */
50struct CvdFile {
52 std::string build_id;
53 std::string build_target;
54 std::string file_path;
55
56 CvdFile();
57 CvdFile(const FileSource& source, const std::string& build_id,
58 const std::string& build_target, const std::string& file_path);
59};
60
61std::ostream& operator<<(std::ostream&, const CvdFile&);
62
75 std::unique_ptr<Json::Value> dictionary_;
76
77 public:
81
82 bool SaveToFile(const std::string& file) const;
83 bool LoadFromFile(const std::string& file);
84
85 // For debugging only, not intended for programmatic access.
86 void RecordFlags();
87
88 bool add_cvd_file(const CvdFile& file, bool override_entry = false);
89 std::map<std::string, CvdFile> get_cvd_files() const;
90
91 std::string FindCvdFileWithSuffix(const std::string& suffix) const;
92
93 Result<void> AddFilesToConfig(FileSource purpose, const std::string& build_id,
94 const std::string& build_target,
95 const std::vector<std::string>& paths,
96 const std::string& directory_prefix,
97 bool override_entry = false);
98};
99
100} // namespace cuttlefish
Definition: expected.h:86
Definition: fetcher_config.h:74
bool add_cvd_file(const CvdFile &file, bool override_entry=false)
Definition: fetcher_config.cpp:215
FetcherConfig()
Definition: fetcher_config.cpp:122
Result< void > AddFilesToConfig(FileSource purpose, const std::string &build_id, const std::string &build_target, const std::vector< std::string > &paths, const std::string &directory_prefix, bool override_entry=false)
Definition: fetcher_config.cpp:254
std::unique_ptr< Json::Value > dictionary_
Definition: fetcher_config.h:75
FetcherConfig(FetcherConfig &&)
std::string FindCvdFileWithSuffix(const std::string &suffix) const
Definition: fetcher_config.cpp:239
~FetcherConfig()
Definition: fetcher_config.cpp:127
bool LoadFromFile(const std::string &file)
Definition: fetcher_config.cpp:140
std::map< std::string, CvdFile > get_cvd_files() const
Definition: fetcher_config.cpp:227
void RecordFlags()
Definition: fetcher_config.cpp:167
bool SaveToFile(const std::string &file) const
Definition: fetcher_config.cpp:130
Definition: cuttlefish_config.h:42
Definition: alloc_utils.cpp:23
FileSource
Definition: fetcher_config.h:32
std::ostream & operator<<(std::ostream &out, Arch arch)
Definition: architecture.cpp:67
Definition: fetcher_config.h:50
std::string build_id
Definition: fetcher_config.h:52
CvdFile()
Definition: fetcher_config.cpp:105
FileSource source
Definition: fetcher_config.h:51
std::string file_path
Definition: fetcher_config.h:54
std::string build_target
Definition: fetcher_config.h:53