1 //===-- MonitoringProcessLauncher.h -----------------------------*- C++ -*-===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 10 #ifndef lldb_Host_MonitoringProcessLauncher_h_ 11 #define lldb_Host_MonitoringProcessLauncher_h_ 12 13 #include <memory> 14 #include "lldb/Host/ProcessLauncher.h" 15 16 namespace lldb_private { 17 18 class MonitoringProcessLauncher : public ProcessLauncher { 19 public: 20 explicit MonitoringProcessLauncher( 21 std::unique_ptr<ProcessLauncher> delegate_launcher); 22 23 /// Launch the process specified in launch_info. The monitoring callback in 24 /// launch_info must be set, and it will be called when the process 25 /// terminates. 26 HostProcess LaunchProcess(const ProcessLaunchInfo &launch_info, 27 Status &error) override; 28 29 private: 30 std::unique_ptr<ProcessLauncher> m_delegate_launcher; 31 }; 32 33 } // namespace lldb_private 34 35 #endif // lldb_Host_MonitoringProcessLauncher_h_ 36