1 //===-- SBExecutionContext.h -----------------------------------------*- C++
4 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5 // See https://llvm.org/LICENSE.txt for license information.
6 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
8 //===----------------------------------------------------------------------===//
10 #ifndef LLDB_API_SBEXECUTIONCONTEXT_H
11 #define LLDB_API_SBEXECUTIONCONTEXT_H
13 #include "lldb/API/SBDefines.h"
18 namespace lldb_private
{
19 class ScriptInterpreter
;
23 } // namespace lldb_private
27 class LLDB_API SBExecutionContext
{
28 friend class SBCommandInterpreter
;
33 SBExecutionContext(const lldb::SBExecutionContext
&rhs
);
35 SBExecutionContext(const lldb::SBTarget
&target
);
37 SBExecutionContext(const lldb::SBProcess
&process
);
39 SBExecutionContext(lldb::SBThread thread
); // can't be a const& because
40 // SBThread::get() isn't itself a
43 SBExecutionContext(const lldb::SBFrame
&frame
);
45 ~SBExecutionContext();
47 const SBExecutionContext
&operator=(const lldb::SBExecutionContext
&rhs
);
49 SBTarget
GetTarget() const;
51 SBProcess
GetProcess() const;
53 SBThread
GetThread() const;
55 SBFrame
GetFrame() const;
58 friend class lldb_private::python::SWIGBridge
;
59 friend class lldb_private::ScriptInterpreter
;
61 lldb_private::ExecutionContextRef
*get() const;
63 SBExecutionContext(lldb::ExecutionContextRefSP exe_ctx_ref_sp
);
66 mutable lldb::ExecutionContextRefSP m_exe_ctx_sp
;
71 #endif // LLDB_API_SBEXECUTIONCONTEXT_H