1 //===-- SBExecutionContext.h -----------------------------------------*- C++ 2 //-*-===// 3 // 4 // The LLVM Compiler Infrastructure 5 // 6 // This file is distributed under the University of Illinois Open Source 7 // License. See LICENSE.TXT for details. 8 // 9 //===----------------------------------------------------------------------===// 10 11 #ifndef LLDB_SBExecutionContext_h_ 12 #define LLDB_SBExecutionContext_h_ 13 14 #include "lldb/API/SBDefines.h" 15 16 #include <stdio.h> 17 #include <vector> 18 19 namespace lldb { 20 21 class LLDB_API SBExecutionContext { 22 friend class SBCommandInterpreter; 23 24 public: 25 SBExecutionContext(); 26 27 SBExecutionContext(const lldb::SBExecutionContext &rhs); 28 29 SBExecutionContext(lldb::ExecutionContextRefSP exe_ctx_ref_sp); 30 31 SBExecutionContext(const lldb::SBTarget &target); 32 33 SBExecutionContext(const lldb::SBProcess &process); 34 35 SBExecutionContext(lldb::SBThread thread); // can't be a const& because 36 // SBThread::get() isn't itself a 37 // const function 38 39 SBExecutionContext(const lldb::SBFrame &frame); 40 41 ~SBExecutionContext(); 42 43 const SBExecutionContext &operator=(const lldb::SBExecutionContext &rhs); 44 45 SBTarget GetTarget() const; 46 47 SBProcess GetProcess() const; 48 49 SBThread GetThread() const; 50 51 SBFrame GetFrame() const; 52 53 protected: 54 ExecutionContextRefSP &GetSP() const; 55 56 void reset(lldb::ExecutionContextRefSP &event_sp); 57 58 lldb_private::ExecutionContextRef *get() const; 59 60 private: 61 mutable lldb::ExecutionContextRefSP m_exe_ctx_sp; 62 }; 63 64 } // namespace lldb 65 66 #endif // LLDB_SBExecutionContext_h_ 67