// // Copyright (C) 2019 The Android Open Source Project // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. #pragma once #include #include #include #include #include "common/libs/fs/shared_fd.h" #include "common/libs/utils/subprocess.h" #include "host/commands/run_cvd/launch/auto_cmd.h" #include "host/commands/run_cvd/launch/grpc_socket_creator.h" #include "host/commands/run_cvd/launch/log_tee_creator.h" #include "host/commands/run_cvd/launch/snapshot_control_files.h" #include "host/commands/run_cvd/launch/webrtc_recorder.h" #include "host/commands/run_cvd/launch/wmediumd_server.h" #include "host/libs/config/command_source.h" #include "host/libs/config/custom_actions.h" #include "host/libs/config/cuttlefish_config.h" #include "host/libs/config/feature.h" #include "host/libs/config/kernel_log_pipe_provider.h" #include "host/libs/vm_manager/vm_manager.h" namespace cuttlefish { Result> UwbConnector( const CuttlefishConfig&, const CuttlefishConfig::InstanceSpecific&); std::optional AutomotiveProxyService(const CuttlefishConfig&); fruit::Component> VhostDeviceVsockComponent(); Result> BluetoothConnector( const CuttlefishConfig&, const CuttlefishConfig::InstanceSpecific&); Result NfcConnector(const CuttlefishConfig&, const CuttlefishConfig::InstanceSpecific&); fruit::Component, KernelLogPipeProvider> KernelLogMonitorComponent(); Result LogcatReceiver( const CuttlefishConfig::InstanceSpecific&); std::string LogcatInfo(const CuttlefishConfig::InstanceSpecific&); Result> CasimirControlServer( const CuttlefishConfig&, const CuttlefishConfig::InstanceSpecific&, GrpcSocketCreator&); Result> ConsoleForwarder( const CuttlefishConfig::InstanceSpecific&); std::string ConsoleInfo(const CuttlefishConfig::InstanceSpecific&); fruit::Component> ControlEnvProxyServerComponent(); Result> GnssGrpcProxyServer( const CuttlefishConfig::InstanceSpecific&, GrpcSocketCreator&); std::optional MetricsService(const CuttlefishConfig&); fruit::Component> OpenWrtComponent(); fruit::Component> OpenwrtControlServerComponent(); fruit::Component< fruit::Required> RootCanalComponent(); Result> Casimir( const CuttlefishConfig&, const CuttlefishConfig::InstanceSpecific&, LogTeeCreator&); Result> Pica( const CuttlefishConfig&, const CuttlefishConfig::InstanceSpecific&, LogTeeCreator&); MonitorCommand EchoServer(GrpcSocketCreator& grpc_socket); fruit::Component> NetsimServerComponent(); Result> ScreenRecordingServer(GrpcSocketCreator&); Result SecureEnv(const CuttlefishConfig&, const CuttlefishConfig::InstanceSpecific&, AutoSnapshotControlFiles::Type&, KernelLogPipeProvider&); Result TombstoneReceiver( const CuttlefishConfig::InstanceSpecific&); fruit::Component> WmediumdServerComponent(); Result> ModemSimulator( const CuttlefishConfig::InstanceSpecific&); fruit::Component< fruit::Required> launchStreamerComponent(); fruit::Component WebRtcRecorderComponent(); fruit::Component< fruit::Required> McuComponent(); std::optional VhalProxyServer( const CuttlefishConfig&, const CuttlefishConfig::InstanceSpecific&); } // namespace cuttlefish