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 15 namespace lldb_private { 16 17 class MonitoringProcessLauncher : public ProcessLauncher { 18 public: 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 28 private: 29 std::unique_ptr<ProcessLauncher> m_delegate_launcher; 30 }; 31 32 } // namespace lldb_private 33 34 #endif // lldb_Host_MonitoringProcessLauncher_h_ 35