1 //===-- SBExecutionContext.cpp ------------------------------------*- C++
4 // The LLVM Compiler Infrastructure
6 // This file is distributed under the University of Illinois Open Source
7 // License. See LICENSE.TXT for details.
9 //===----------------------------------------------------------------------===//
11 #include "lldb/API/SBExecutionContext.h"
13 #include "lldb/API/SBFrame.h"
14 #include "lldb/API/SBProcess.h"
15 #include "lldb/API/SBTarget.h"
16 #include "lldb/API/SBThread.h"
18 #include "lldb/Target/ExecutionContext.h"
21 using namespace lldb_private;
23 SBExecutionContext::SBExecutionContext() : m_exe_ctx_sp() {}
25 SBExecutionContext::SBExecutionContext(const lldb::SBExecutionContext &rhs)
26 : m_exe_ctx_sp(rhs.m_exe_ctx_sp) {}
28 SBExecutionContext::SBExecutionContext(
29 lldb::ExecutionContextRefSP exe_ctx_ref_sp)
30 : m_exe_ctx_sp(exe_ctx_ref_sp) {}
32 SBExecutionContext::SBExecutionContext(const lldb::SBTarget &target)
33 : m_exe_ctx_sp(new ExecutionContextRef()) {
34 m_exe_ctx_sp->SetTargetSP(target.GetSP());
37 SBExecutionContext::SBExecutionContext(const lldb::SBProcess &process)
38 : m_exe_ctx_sp(new ExecutionContextRef()) {
39 m_exe_ctx_sp->SetProcessSP(process.GetSP());
42 SBExecutionContext::SBExecutionContext(lldb::SBThread thread)
43 : m_exe_ctx_sp(new ExecutionContextRef()) {
44 m_exe_ctx_sp->SetThreadPtr(thread.get());
47 SBExecutionContext::SBExecutionContext(const lldb::SBFrame &frame)
48 : m_exe_ctx_sp(new ExecutionContextRef()) {
49 m_exe_ctx_sp->SetFrameSP(frame.GetFrameSP());
52 SBExecutionContext::~SBExecutionContext() {}
54 const SBExecutionContext &SBExecutionContext::
55 operator=(const lldb::SBExecutionContext &rhs) {
56 m_exe_ctx_sp = rhs.m_exe_ctx_sp;
60 ExecutionContextRef *SBExecutionContext::get() const {
61 return m_exe_ctx_sp.get();
64 SBTarget SBExecutionContext::GetTarget() const {
67 TargetSP target_sp(m_exe_ctx_sp->GetTargetSP());
69 sb_target.SetSP(target_sp);
74 SBProcess SBExecutionContext::GetProcess() const {
77 ProcessSP process_sp(m_exe_ctx_sp->GetProcessSP());
79 sb_process.SetSP(process_sp);
84 SBThread SBExecutionContext::GetThread() const {
87 ThreadSP thread_sp(m_exe_ctx_sp->GetThreadSP());
89 sb_thread.SetThread(thread_sp);
94 SBFrame SBExecutionContext::GetFrame() const {
97 StackFrameSP frame_sp(m_exe_ctx_sp->GetFrameSP());
99 sb_frame.SetFrameSP(frame_sp);