blob: 6a8dd2e33f122355334650c067b1baec63699b37 [file] [log] [blame]
Enrico Granatae85e84a2014-10-01 20:43:45 +00001//===-- SBExecutionContext.cpp ------------------------------------*- 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#include "lldb/API/SBExecutionContext.h"
11
12#include "lldb/API/SBTarget.h"
13#include "lldb/API/SBProcess.h"
14#include "lldb/API/SBThread.h"
15#include "lldb/API/SBFrame.h"
16
17#include "lldb/Target/ExecutionContext.h"
18
19using namespace lldb;
20using namespace lldb_private;
21
22SBExecutionContext::SBExecutionContext() :
23m_exe_ctx_sp()
24{
25}
26
27SBExecutionContext::SBExecutionContext (const lldb::SBExecutionContext &rhs) :
28m_exe_ctx_sp(rhs.m_exe_ctx_sp)
29{
30}
31
32SBExecutionContext::SBExecutionContext (const lldb::SBTarget &target) :
33m_exe_ctx_sp(new ExecutionContextRef())
34{
35 m_exe_ctx_sp->SetTargetSP(target.GetSP());
36}
37
38SBExecutionContext::SBExecutionContext (const lldb::SBProcess &process) :
39m_exe_ctx_sp(new ExecutionContextRef())
40{
41 m_exe_ctx_sp->SetProcessSP(process.GetSP());
42}
43
44SBExecutionContext::SBExecutionContext (lldb::SBThread thread) :
45m_exe_ctx_sp(new ExecutionContextRef())
46{
47 m_exe_ctx_sp->SetThreadPtr(thread.get());
48}
49
50SBExecutionContext::SBExecutionContext (const lldb::SBFrame &frame) :
51m_exe_ctx_sp(new ExecutionContextRef())
52{
53 m_exe_ctx_sp->SetFrameSP(frame.GetFrameSP());
54}
55
56SBExecutionContext::~SBExecutionContext()
57{
58}
59
60const SBExecutionContext &
61SBExecutionContext::operator = (const lldb::SBExecutionContext &rhs)
62{
63 m_exe_ctx_sp = rhs.m_exe_ctx_sp;
64 return *this;
65}
66
67SBTarget
68SBExecutionContext::GetTarget () const
69{
70 SBTarget sb_target;
71 if (m_exe_ctx_sp)
72 {
73 TargetSP target_sp(m_exe_ctx_sp->GetTargetSP());
74 if (target_sp)
75 sb_target.SetSP(target_sp);
76 }
77 return sb_target;
78}
79
80SBProcess
81SBExecutionContext::GetProcess () const
82{
83 SBProcess sb_process;
84 if (m_exe_ctx_sp)
85 {
86 ProcessSP process_sp(m_exe_ctx_sp->GetProcessSP());
87 if (process_sp)
88 sb_process.SetSP(process_sp);
89 }
90 return sb_process;
91}
92
93SBThread
94SBExecutionContext::GetThread () const
95{
96 SBThread sb_thread;
97 if (m_exe_ctx_sp)
98 {
99 ThreadSP thread_sp(m_exe_ctx_sp->GetThreadSP());
100 if (thread_sp)
101 sb_thread.SetThread(thread_sp);
102 }
103 return sb_thread;
104}
105
106SBFrame
107SBExecutionContext::GetFrame () const
108{
109 SBFrame sb_frame;
110 if (m_exe_ctx_sp)
111 {
112 StackFrameSP frame_sp(m_exe_ctx_sp->GetFrameSP());
113 if (frame_sp)
114 sb_frame.SetFrameSP(frame_sp);
115 }
116 return sb_frame;
117}
118