Android-cuttlefish cvd tool
creation_analyzer.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
17#pragma once
18
19#include <sys/types.h>
20
21#include <optional>
22#include <string>
23#include <unordered_map>
24#include <utility>
25#include <vector>
26
29#include "cuttlefish/host/commands/cvd/instances/cvd_persistent_data.pb.h"
31
32namespace cuttlefish {
33namespace selector {
34
36 // for the sake of std::vector::emplace_back
37 PerInstanceInfo(const unsigned id, const std::string& per_instance_name,
38 cvd::InstanceState initial_state,
39 InstanceLockFile&& instance_file_lock)
41 per_instance_name_(per_instance_name),
42 initial_state_(initial_state),
43 instance_file_lock_(std::move(instance_file_lock)) {}
44
45 PerInstanceInfo(const unsigned id, const std::string& per_instance_name,
46 cvd::InstanceState initial_state)
48 per_instance_name_(per_instance_name),
49 initial_state_(initial_state) {}
50
51 const unsigned instance_id_;
52 const std::string per_instance_name_;
53 const cvd::InstanceState initial_state_;
54 std::optional<InstanceLockFile> instance_file_lock_;
55};
56
63 std::string home;
64 std::string host_artifacts_path;
65 // set to host_artifacts_path if no ANDROID_PRODUCT_OUT
66 std::string product_out_path;
67 std::string group_name;
68 std::vector<PerInstanceInfo> instances;
69};
70
72 const std::vector<std::string>& cmd_args;
73 const std::unordered_map<std::string, std::string>& envs;
76};
77
108
109} // namespace selector
110} // namespace cuttlefish
Definition: expected.h:86
Definition: instance_lock.h:45
Definition: instance_lock.h:28
uint32_t id
Definition: file_sync_protocol.h:0
Result< GroupCreationInfo > AnalyzeCreation(const CreationAnalyzerParam &params, InstanceLockFileManager &lock_file_manager)
Definition: creation_analyzer.cpp:296
Definition: alloc_utils.cpp:23
Definition: logging.h:464
Definition: creation_analyzer.h:71
const std::unordered_map< std::string, std::string > & envs
Definition: creation_analyzer.h:73
const std::vector< std::string > & cmd_args
Definition: creation_analyzer.h:72
const SelectorOptions & selectors
Definition: creation_analyzer.h:74
bool acquire_file_locks
Definition: creation_analyzer.h:75
Definition: creation_analyzer.h:62
std::vector< PerInstanceInfo > instances
Definition: creation_analyzer.h:68
std::string home
Definition: creation_analyzer.h:63
std::string host_artifacts_path
e.g. out/host/linux-x86
Definition: creation_analyzer.h:64
std::string product_out_path
Definition: creation_analyzer.h:66
std::string group_name
Definition: creation_analyzer.h:67
Definition: creation_analyzer.h:35
const unsigned instance_id_
Definition: creation_analyzer.h:51
PerInstanceInfo(const unsigned id, const std::string &per_instance_name, cvd::InstanceState initial_state)
Definition: creation_analyzer.h:45
PerInstanceInfo(const unsigned id, const std::string &per_instance_name, cvd::InstanceState initial_state, InstanceLockFile &&instance_file_lock)
Definition: creation_analyzer.h:37
std::optional< InstanceLockFile > instance_file_lock_
Definition: creation_analyzer.h:54
const cvd::InstanceState initial_state_
Definition: creation_analyzer.h:53
const std::string per_instance_name_
Definition: creation_analyzer.h:52
Definition: selector_common_parser.h:29