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

#include <start_selector_parser.h>

Collaboration diagram for cuttlefish::selector::StartSelectorParser:
Collaboration graph
[legend]

Classes

struct  InstanceFromEnvParam
 
struct  InstanceIdsParams
 
class  ParsedInstanceIdsOpt
 
struct  VerifyNumOfInstancesParam
 

Public Member Functions

std::optional< std::string > GroupName () const
 
std::optional< std::vector< std::string > > PerInstanceNames () const
 
const std::optional< std::vector< unsigned > > & InstanceIds () const
 
unsigned RequestedNumInstances () const
 
bool IsMaybeDefaultGroup () const
 
bool UseCvdalloc () const
 

Static Public Member Functions

static Result< StartSelectorParserConductSelectFlagsParser (const SelectorOptions &selector_options, const cvd_common::Args &cmd_args, const cvd_common::Envs &envs)
 

Private Member Functions

 StartSelectorParser (const std::string &system_wide_user_home, const SelectorOptions &selector_options, const cvd_common::Args &cmd_args, const cvd_common::Envs &envs)
 
Result< void > ParseOptions ()
 
Result< ParsedInstanceIdsOptHandleInstanceIds (const InstanceIdsParams &instance_id_params)
 
std::optional< std::vector< unsigned > > InstanceFromEnvironment (const InstanceFromEnvParam &params)
 
Result< unsigned > VerifyNumOfInstances (const VerifyNumOfInstancesParam &params, unsigned default_n_instances=1) const
 
bool CalcMayBeDefaultGroup ()
 

Private Attributes

std::optional< std::vector< unsigned > > instance_ids_
 
unsigned requested_num_instances_
 
bool may_be_default_group_
 
bool use_cvdalloc_
 
const std::string client_user_home_
 
SelectorOptions selector_options_
 
cvd_common::Args cmd_args_
 
cvd_common::Envs envs_
 

Detailed Description

This class parses the separated SelectorOptions defined in cvd_server.proto.

Note that the parsing is from the perspective of syntax.

In other words, this does not check the following, for example:

  1. If the numeric instance id is duplicated
  2. If the group name is already taken

Extends the common selector options with start specific ones.

Constructor & Destructor Documentation

◆ StartSelectorParser()

cuttlefish::selector::StartSelectorParser::StartSelectorParser ( const std::string &  system_wide_user_home,
const SelectorOptions selector_options,
const cvd_common::Args cmd_args,
const cvd_common::Envs envs 
)
private

Member Function Documentation

◆ CalcMayBeDefaultGroup()

bool cuttlefish::selector::StartSelectorParser::CalcMayBeDefaultGroup ( )
private

◆ ConductSelectFlagsParser()

Result< StartSelectorParser > cuttlefish::selector::StartSelectorParser::ConductSelectFlagsParser ( const SelectorOptions selector_options,
const cvd_common::Args cmd_args,
const cvd_common::Envs envs 
)
static

◆ GroupName()

std::optional< std::string > cuttlefish::selector::StartSelectorParser::GroupName ( ) const

◆ HandleInstanceIds()

Result< StartSelectorParser::ParsedInstanceIdsOpt > cuttlefish::selector::StartSelectorParser::HandleInstanceIds ( const InstanceIdsParams instance_id_params)
private

◆ InstanceFromEnvironment()

std::optional< std::vector< unsigned > > cuttlefish::selector::StartSelectorParser::InstanceFromEnvironment ( const InstanceFromEnvParam params)
private

◆ InstanceIds()

const std::optional< std::vector< unsigned > > & cuttlefish::selector::StartSelectorParser::InstanceIds ( ) const
inline

◆ IsMaybeDefaultGroup()

bool cuttlefish::selector::StartSelectorParser::IsMaybeDefaultGroup ( ) const
inline

◆ ParseOptions()

Result< void > cuttlefish::selector::StartSelectorParser::ParseOptions ( )
private

◆ PerInstanceNames()

std::optional< std::vector< std::string > > cuttlefish::selector::StartSelectorParser::PerInstanceNames ( ) const

◆ RequestedNumInstances()

unsigned cuttlefish::selector::StartSelectorParser::RequestedNumInstances ( ) const
inline

◆ UseCvdalloc()

bool cuttlefish::selector::StartSelectorParser::UseCvdalloc ( ) const
inline

◆ VerifyNumOfInstances()

Result< unsigned > cuttlefish::selector::StartSelectorParser::VerifyNumOfInstances ( const VerifyNumOfInstancesParam params,
unsigned  default_n_instances = 1 
) const
private

Member Data Documentation

◆ client_user_home_

const std::string cuttlefish::selector::StartSelectorParser::client_user_home_
private

◆ cmd_args_

cvd_common::Args cuttlefish::selector::StartSelectorParser::cmd_args_
private

◆ envs_

cvd_common::Envs cuttlefish::selector::StartSelectorParser::envs_
private

◆ instance_ids_

std::optional<std::vector<unsigned> > cuttlefish::selector::StartSelectorParser::instance_ids_
private

The following are considered, and left empty if can't be figured out.

–base_instance_num, –instance_nums, –num_instances, instance_names_.size(), CUTTLEFISH_INSTANCE, and vsoc-suffix if it is the user name.

instance_names_.size() is effectively another –num_instances. CUTTLEFISH_INSTANCE and the suffix in order are considered as –base_instance_num if –base_instance_num is not given and –instance_nums is not given.

◆ may_be_default_group_

bool cuttlefish::selector::StartSelectorParser::may_be_default_group_
private

◆ requested_num_instances_

unsigned cuttlefish::selector::StartSelectorParser::requested_num_instances_
private

◆ selector_options_

SelectorOptions cuttlefish::selector::StartSelectorParser::selector_options_
private

◆ use_cvdalloc_

bool cuttlefish::selector::StartSelectorParser::use_cvdalloc_
private

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