/* * Copyright (C) 2022 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 "common/libs/fs/shared_fd.h" #include "common/libs/utils/result.h" #include "device/google/cuttlefish/host/libs/command_util/runner/run_cvd.pb.h" #include "host/libs/command_util/runner/defs.h" #include "host/libs/config/cuttlefish_config.h" namespace cuttlefish { Result ReadExitCode(SharedFD monitor_socket); Result GetLauncherMonitorFromInstance( const CuttlefishConfig::InstanceSpecific& instance_config, const int timeout_seconds); Result GetLauncherMonitor(const CuttlefishConfig& config, const int instance_num, const int timeout_seconds); struct LauncherActionInfo { LauncherAction action; run_cvd::ExtendedLauncherAction extended_action; }; Result ReadLauncherActionFromFd(SharedFD monitor_socket); Result WaitForRead(SharedFD monitor_socket, const int timeout_seconds); // Writes the `action` request to `monitor_socket`, then waits for the response // and checks for errors. Result RunLauncherAction(SharedFD monitor_socket, LauncherAction action, std::optional timeout_seconds); // Writes the `action` request to `monitor_socket`, then waits for the response // and checks for errors. Result RunLauncherAction( SharedFD monitor_socket, const run_cvd::ExtendedLauncherAction& extended_action, std::optional timeout_seconds); } // namespace cuttlefish