Android-cuttlefish cvd tool
instance_manager.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 <utility>
24#include <vector>
25
33#include "cuttlefish/host/commands/cvd/legacy/cvd_server.pb.h"
34
35namespace cuttlefish {
36
38 public:
40
42
45 const selector::GroupCreationInfo& group_info);
47 Result<bool> RemoveInstanceGroupByHome(const std::string&);
48
50
52
54 const InstanceDatabase::Filter& filter) const;
56 const InstanceDatabase::Filter& filter) const;
57
59 const InstanceDatabase::Filter& filter) const;
60
63
65 const std::string& config_file_path,
66 LocalInstanceGroup& group);
67
68 private:
69 Result<std::string> StopBin(const std::string& host_android_out);
70
73};
74
75} // namespace cuttlefish
Definition: expected.h:86
Definition: command_request.h:33
Definition: instance_database.h:34
Definition: instance_lock.h:45
Definition: instance_manager.h:37
Result< LocalInstanceGroup > FindGroup(const InstanceDatabase::Filter &filter) const
Definition: instance_manager.cpp:235
Result< std::optional< InstanceLockFile > > TryAcquireLock(int instance_num)
Definition: instance_manager.cpp:225
InstanceManager(InstanceLockFileManager &, InstanceDatabase &instance_db)
Definition: instance_manager.cpp:71
Result< void > SetAcloudTranslatorOptout(bool optout)
Definition: instance_manager.cpp:75
cvd::Status CvdClear(const CommandRequest &)
Definition: instance_manager.cpp:182
InstanceDatabase & instance_db_
Definition: instance_manager.h:72
Result< std::vector< LocalInstanceGroup > > FindGroups(const InstanceDatabase::Filter &filter) const
Definition: instance_manager.cpp:230
Result< bool > RemoveInstanceGroupByHome(const std::string &)
Definition: instance_manager.cpp:110
Result< std::string > StopBin(const std::string &host_android_out)
Definition: instance_manager.cpp:130
Result< bool > HasInstanceGroups() const
Definition: instance_manager.cpp:90
Result< void > IssueStopCommand(const CommandRequest &request, const std::string &config_file_path, LocalInstanceGroup &group)
Definition: instance_manager.cpp:141
InstanceLockFileManager & lock_manager_
Definition: instance_manager.h:71
Result< bool > GetAcloudTranslatorOptout() const
Definition: instance_manager.cpp:80
Result< void > UpdateInstanceGroup(const LocalInstanceGroup &group)
Definition: instance_manager.cpp:135
Result< std::pair< LocalInstance, LocalInstanceGroup > > FindInstanceWithGroup(const InstanceDatabase::Filter &filter) const
Definition: instance_manager.cpp:85
Result< LocalInstanceGroup > CreateInstanceGroup(const selector::GroupCreationInfo &group_info)
Definition: instance_manager.cpp:94
Definition: instance_group_record.h:32
static void Status(const std::string &message)
Definition: fastboot.cpp:205
Definition: alloc_utils.cpp:23
Definition: instance_database.h:39
Definition: creation_analyzer.h:62