blob: d1c21eccb722b765fe1cd2d60c95cc3a4115fcd3 [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
72SBTarget
73SBExecutionContext::GetTarget () const
74{
75 SBTarget sb_target;
76 if (m_exe_ctx_sp)
77 {
78 TargetSP target_sp(m_exe_ctx_sp->GetTargetSP());
79 if (target_sp)
80 sb_target.SetSP(target_sp);
81 }
82 return sb_target;
83}
84
85SBProcess
86SBExecutionContext::GetProcess () const
87{
88 SBProcess sb_process;
89 if (m_exe_ctx_sp)
90 {
91 ProcessSP process_sp(m_exe_ctx_sp->GetProcessSP());
92 if (process_sp)
93 sb_process.SetSP(process_sp);
94 }
95 return sb_process;
96}
97
98SBThread
99SBExecutionContext::GetThread () const
100{
101 SBThread sb_thread;
102 if (m_exe_ctx_sp)
103 {
104 ThreadSP thread_sp(m_exe_ctx_sp->GetThreadSP());
105 if (thread_sp)
106 sb_thread.SetThread(thread_sp);
107 }
108 return sb_thread;
109}
110
111SBFrame
112SBExecutionContext::GetFrame () const
113{
114 SBFrame sb_frame;
115 if (m_exe_ctx_sp)
116 {
117 StackFrameSP frame_sp(m_exe_ctx_sp->GetFrameSP());
118 if (frame_sp)
119 sb_frame.SetFrameSP(frame_sp);
120 }
121 return sb_frame;
122}
123