1 #pragma once 2 3 #include <functional> 4 #include <set> 5 #include <string> 6 7 #include "common/libs/fs/shared_fd.h" 8 #include "common/libs/utils/subprocess.h" 9 #include "host/commands/run_cvd/process_monitor.h" 10 #include "host/libs/config/cuttlefish_config.h" 11 12 std::vector <cuttlefish::SharedFD> LaunchKernelLogMonitor( 13 const cuttlefish::CuttlefishConfig& config, 14 cuttlefish::ProcessMonitor* process_monitor, 15 unsigned int number_of_event_pipes); 16 void LaunchAdbConnectorIfEnabled(cuttlefish::ProcessMonitor* process_monitor, 17 const cuttlefish::CuttlefishConfig& config, 18 cuttlefish::SharedFD adbd_events_pipe); 19 void LaunchSocketVsockProxyIfEnabled(cuttlefish::ProcessMonitor* process_monitor, 20 const cuttlefish::CuttlefishConfig& config); 21 void LaunchModemSimulatorIfEnabled(const cuttlefish::CuttlefishConfig& config, 22 cuttlefish::ProcessMonitor* process_monitor); 23 24 struct StreamerLaunchResult { 25 bool launched = false; 26 }; 27 StreamerLaunchResult LaunchVNCServer( 28 const cuttlefish::CuttlefishConfig& config, 29 cuttlefish::ProcessMonitor* process_monitor, 30 std::function<bool(cuttlefish::MonitorEntry*)> callback); 31 32 void LaunchTombstoneReceiverIfEnabled(const cuttlefish::CuttlefishConfig& config, 33 cuttlefish::ProcessMonitor* process_monitor); 34 void LaunchLogcatReceiver(const cuttlefish::CuttlefishConfig& config, 35 cuttlefish::ProcessMonitor* process_monitor); 36 void LaunchConfigServer(const cuttlefish::CuttlefishConfig& config, 37 cuttlefish::ProcessMonitor* process_monitor); 38 39 StreamerLaunchResult LaunchWebRTC(cuttlefish::ProcessMonitor* process_monitor, 40 const cuttlefish::CuttlefishConfig& config); 41 42 void LaunchTpm(cuttlefish::ProcessMonitor* process_monitor, 43 const cuttlefish::CuttlefishConfig& config); 44 45 void LaunchMetrics(cuttlefish::ProcessMonitor* process_monitor, 46 const cuttlefish::CuttlefishConfig& config); 47 48 void LaunchSecureEnvironment(cuttlefish::ProcessMonitor* process_monitor, 49 const cuttlefish::CuttlefishConfig& config); 50