| // Copyright 2019 The Chromium OS Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef DIAGNOSTICS_CROS_HEALTHD_ROUTINES_DIAG_PROCESS_ADAPTER_H_ |
| #define DIAGNOSTICS_CROS_HEALTHD_ROUTINES_DIAG_PROCESS_ADAPTER_H_ |
| |
| #include <string> |
| #include <vector> |
| |
| #include <base/process/kill.h> |
| #include <base/process/process_handle.h> |
| |
| namespace diagnostics { |
| |
| // Provides an interface for controlling a single child process. |
| class DiagProcessAdapter { |
| public: |
| virtual ~DiagProcessAdapter() = default; |
| |
| // Retrieves the status of the child process. |
| virtual base::TerminationStatus GetStatus( |
| const base::ProcessHandle& handle) const = 0; |
| |
| // Launches the specified process. |
| virtual bool StartProcess(const std::vector<std::string>& args, |
| base::ProcessHandle* handle) = 0; |
| |
| // Kills the process which was started earlier by StartProcess. |
| virtual bool KillProcess(const base::ProcessHandle& handle) = 0; |
| }; |
| |
| } // namespace diagnostics |
| |
| #endif // DIAGNOSTICS_CROS_HEALTHD_ROUTINES_DIAG_PROCESS_ADAPTER_H_ |