#pragma once #include #include #include #include "common/libs/fs/shared_fd.h" #include "common/libs/utils/subprocess.h" #include "host/commands/run_cvd/process_monitor.h" #include "host/libs/config/cuttlefish_config.h" std::vector LaunchKernelLogMonitor( const cuttlefish::CuttlefishConfig& config, cuttlefish::ProcessMonitor* process_monitor, unsigned int number_of_event_pipes); void LaunchAdbConnectorIfEnabled(cuttlefish::ProcessMonitor* process_monitor, const cuttlefish::CuttlefishConfig& config, cuttlefish::SharedFD adbd_events_pipe); void LaunchSocketVsockProxyIfEnabled(cuttlefish::ProcessMonitor* process_monitor, const cuttlefish::CuttlefishConfig& config); void LaunchModemSimulatorIfEnabled(const cuttlefish::CuttlefishConfig& config, cuttlefish::ProcessMonitor* process_monitor); struct StreamerLaunchResult { bool launched = false; }; StreamerLaunchResult LaunchVNCServer( const cuttlefish::CuttlefishConfig& config, cuttlefish::ProcessMonitor* process_monitor, std::function callback); void LaunchTombstoneReceiverIfEnabled(const cuttlefish::CuttlefishConfig& config, cuttlefish::ProcessMonitor* process_monitor); void LaunchLogcatReceiver(const cuttlefish::CuttlefishConfig& config, cuttlefish::ProcessMonitor* process_monitor); void LaunchConfigServer(const cuttlefish::CuttlefishConfig& config, cuttlefish::ProcessMonitor* process_monitor); StreamerLaunchResult LaunchWebRTC(cuttlefish::ProcessMonitor* process_monitor, const cuttlefish::CuttlefishConfig& config); void LaunchTpm(cuttlefish::ProcessMonitor* process_monitor, const cuttlefish::CuttlefishConfig& config); void LaunchMetrics(cuttlefish::ProcessMonitor* process_monitor, const cuttlefish::CuttlefishConfig& config); void LaunchSecureEnvironment(cuttlefish::ProcessMonitor* process_monitor, const cuttlefish::CuttlefishConfig& config);