blob: dc20c6092132708b9f9bc38547595936b4891aeb [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
Enrico Granata06be0592014-10-01 21:47:29 +000032SBExecutionContext::SBExecutionContext (lldb::ExecutionContextRefSP exe_ctx_ref_sp) :
33m_exe_ctx_sp(exe_ctx_ref_sp)
34{
35}
36
Enrico Granatae85e84a2014-10-01 20:43:45 +000037SBExecutionContext::SBExecutionContext (const lldb::SBTarget &target) :
38m_exe_ctx_sp(new ExecutionContextRef())
39{
40 m_exe_ctx_sp->SetTargetSP(target.GetSP());
41}
42
43SBExecutionContext::SBExecutionContext (const lldb::SBProcess &process) :
44m_exe_ctx_sp(new ExecutionContextRef())
45{
46 m_exe_ctx_sp->SetProcessSP(process.GetSP());
47}
48
49SBExecutionContext::SBExecutionContext (lldb::SBThread thread) :
50m_exe_ctx_sp(new ExecutionContextRef())
51{
52 m_exe_ctx_sp->SetThreadPtr(thread.get());
53}
54
55SBExecutionContext::SBExecutionContext (const lldb::SBFrame &frame) :
56m_exe_ctx_sp(new ExecutionContextRef())
57{
58 m_exe_ctx_sp->SetFrameSP(frame.GetFrameSP());
59}
60
61SBExecutionContext::~SBExecutionContext()
62{
63}
64
65const SBExecutionContext &
66SBExecutionContext::operator = (const lldb::SBExecutionContext &rhs)
67{
68 m_exe_ctx_sp = rhs.m_exe_ctx_sp;
69 return *this;
70}
71
Jim Inghamffc9f1d2014-10-14 01:20:07 +000072ExecutionContextRef *
73SBExecutionContext::get () const
74{
75 return m_exe_ctx_sp.get();
76}
77
Enrico Granatae85e84a2014-10-01 20:43:45 +000078SBTarget
79SBExecutionContext::GetTarget () const
80{
81 SBTarget sb_target;
82 if (m_exe_ctx_sp)
83 {
84 TargetSP target_sp(m_exe_ctx_sp->GetTargetSP());
85 if (target_sp)
86 sb_target.SetSP(target_sp);
87 }
88 return sb_target;
89}
90
91SBProcess
92SBExecutionContext::GetProcess () const
93{
94 SBProcess sb_process;
95 if (m_exe_ctx_sp)
96 {
97 ProcessSP process_sp(m_exe_ctx_sp->GetProcessSP());
98 if (process_sp)
99 sb_process.SetSP(process_sp);
100 }
101 return sb_process;
102}
103
104SBThread
105SBExecutionContext::GetThread () const
106{
107 SBThread sb_thread;
108 if (m_exe_ctx_sp)
109 {
110 ThreadSP thread_sp(m_exe_ctx_sp->GetThreadSP());
111 if (thread_sp)
112 sb_thread.SetThread(thread_sp);
113 }
114 return sb_thread;
115}
116
117SBFrame
118SBExecutionContext::GetFrame () const
119{
120 SBFrame sb_frame;
121 if (m_exe_ctx_sp)
122 {
123 StackFrameSP frame_sp(m_exe_ctx_sp->GetFrameSP());
124 if (frame_sp)
125 sb_frame.SetFrameSP(frame_sp);
126 }
127 return sb_frame;
128}
129