//===-- SBExecutionContext.h -----------------------------------------*- C++ -*-===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// #ifndef LLDB_SBExecutionContext_h_ #define LLDB_SBExecutionContext_h_ #include "lldb/API/SBDefines.h" #include #include namespace lldb { class SBExecutionContext { friend class SBCommandInterpreter; public: SBExecutionContext(); SBExecutionContext (const lldb::SBExecutionContext &rhs); SBExecutionContext (lldb::ExecutionContextRefSP exe_ctx_ref_sp); SBExecutionContext (const lldb::SBTarget &target); SBExecutionContext (const lldb::SBProcess &process); SBExecutionContext (lldb::SBThread thread); // can't be a const& because SBThread::get() isn't itself a const function SBExecutionContext (const lldb::SBFrame &frame); ~SBExecutionContext(); const SBExecutionContext & operator = (const lldb::SBExecutionContext &rhs); SBTarget GetTarget () const; SBProcess GetProcess () const; SBThread GetThread () const; SBFrame GetFrame () const; protected: ExecutionContextRefSP & GetSP () const; void reset (lldb::ExecutionContextRefSP &event_sp); lldb_private::ExecutionContextRef * get () const; private: mutable lldb::ExecutionContextRefSP m_exe_ctx_sp; }; } // namespace lldb #endif // LLDB_SBExecutionContext_h_