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