Android-cuttlefish cvd tool
Classes | Public Member Functions | Private Member Functions | Private Attributes | List of all members
cuttlefish::InstanceManager Class Reference

#include <instance_manager.h>

Collaboration diagram for cuttlefish::InstanceManager:
Collaboration graph
[legend]

Classes

struct  GroupDirectories
 
struct  InternalInstanceDesc
 

Public Member Functions

 InstanceManager (InstanceLockFileManager &, InstanceDatabase &instance_db)
 
Result< bool > HasInstanceGroups () const
 
Result< LocalInstanceGroupCreateInstanceGroup (InstanceGroupParams group_params, GroupDirectories group_directories)
 
Result< void > UpdateInstanceGroup (const LocalInstanceGroup &group)
 
Result< bool > RemoveInstanceGroup (LocalInstanceGroup group)
 
Result< void > Clear ()
 
Result< void > Reset ()
 
Result< void > ResetAndClearInstanceDirs ()
 
Result< std::vector< LocalInstanceGroup > > FindGroups (const InstanceDatabase::Filter &filter) const
 
Result< LocalInstanceGroupFindGroup (const InstanceDatabase::Filter &filter) const
 
Result< std::pair< LocalInstance, LocalInstanceGroup > > FindInstanceWithGroup (const InstanceDatabase::Filter &filter) const
 
Result< std::vector< std::pair< LocalInstanceGroup, std::vector< LocalInstance > > > > FindInstances (const InstanceDatabase::Filter &filter) const
 
Result< void > StopInstanceGroup (LocalInstanceGroup &group, InstanceDirActionOnStop instance_dir_action, std::chrono::seconds launcher_timeout=std::chrono::seconds(5), const std::vector< unsigned > &instance_nums={})
 

Private Member Functions

Result< std::vector< InternalInstanceDesc > > AllocateAndLockInstanceIds (std::vector< InstanceParams > instances)
 

Private Attributes

InstanceLockFileManagerlock_manager_
 
InstanceDatabaseinstance_db_
 

Constructor & Destructor Documentation

◆ InstanceManager()

cuttlefish::InstanceManager::InstanceManager ( InstanceLockFileManager lock_manager,
InstanceDatabase instance_db 
)

Member Function Documentation

◆ AllocateAndLockInstanceIds()

Result< std::vector< InstanceManager::InternalInstanceDesc > > cuttlefish::InstanceManager::AllocateAndLockInstanceIds ( std::vector< InstanceParams instances)
private

◆ Clear()

Result< void > cuttlefish::InstanceManager::Clear ( )

◆ CreateInstanceGroup()

Result< LocalInstanceGroup > cuttlefish::InstanceManager::CreateInstanceGroup ( InstanceGroupParams  group_params,
GroupDirectories  group_directories 
)

◆ FindGroup()

Result< LocalInstanceGroup > cuttlefish::InstanceManager::FindGroup ( const InstanceDatabase::Filter filter) const

◆ FindGroups()

Result< std::vector< LocalInstanceGroup > > cuttlefish::InstanceManager::FindGroups ( const InstanceDatabase::Filter filter) const

◆ FindInstances()

Result< std::vector< std::pair< LocalInstanceGroup, std::vector< LocalInstance > > > > cuttlefish::InstanceManager::FindInstances ( const InstanceDatabase::Filter filter) const

◆ FindInstanceWithGroup()

Result< std::pair< LocalInstance, LocalInstanceGroup > > cuttlefish::InstanceManager::FindInstanceWithGroup ( const InstanceDatabase::Filter filter) const

◆ HasInstanceGroups()

Result< bool > cuttlefish::InstanceManager::HasInstanceGroups ( ) const

◆ RemoveInstanceGroup()

Result< bool > cuttlefish::InstanceManager::RemoveInstanceGroup ( LocalInstanceGroup  group)

◆ Reset()

Result< void > cuttlefish::InstanceManager::Reset ( )

◆ ResetAndClearInstanceDirs()

Result< void > cuttlefish::InstanceManager::ResetAndClearInstanceDirs ( )

◆ StopInstanceGroup()

Result< void > cuttlefish::InstanceManager::StopInstanceGroup ( LocalInstanceGroup group,
InstanceDirActionOnStop  instance_dir_action,
std::chrono::seconds  launcher_timeout = std::chrono::seconds(5),
const std::vector< unsigned > &  instance_nums = {} 
)

◆ UpdateInstanceGroup()

Result< void > cuttlefish::InstanceManager::UpdateInstanceGroup ( const LocalInstanceGroup group)

Member Data Documentation

◆ instance_db_

InstanceDatabase& cuttlefish::InstanceManager::instance_db_
private

◆ lock_manager_

InstanceLockFileManager& cuttlefish::InstanceManager::lock_manager_
private

The documentation for this class was generated from the following files: