1//===-- MonitoringProcessLauncher.h -----------------------------*- C++ -*-===// 2// 3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4// See https://llvm.org/LICENSE.txt for license information. 5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6// 7//===----------------------------------------------------------------------===// 8 9#ifndef lldb_Host_MonitoringProcessLauncher_h_ 10#define lldb_Host_MonitoringProcessLauncher_h_ 11 12#include <memory> 13#include "lldb/Host/ProcessLauncher.h" 14 15namespace lldb_private { 16 17class MonitoringProcessLauncher : public ProcessLauncher { 18public: 19 explicit MonitoringProcessLauncher( 20 std::unique_ptr<ProcessLauncher> delegate_launcher); 21 22 /// Launch the process specified in launch_info. The monitoring callback in 23 /// launch_info must be set, and it will be called when the process 24 /// terminates. 25 HostProcess LaunchProcess(const ProcessLaunchInfo &launch_info, 26 Status &error) override; 27 28private: 29 std::unique_ptr<ProcessLauncher> m_delegate_launcher; 30}; 31 32} // namespace lldb_private 33 34#endif // lldb_Host_MonitoringProcessLauncher_h_ 35