| //===-- SBExecutionContext.cpp ------------------------------------*- C++ -*-===// |
| // |
| // The LLVM Compiler Infrastructure |
| // |
| // This file is distributed under the University of Illinois Open Source |
| // License. See LICENSE.TXT for details. |
| // |
| //===----------------------------------------------------------------------===// |
| |
| #include "lldb/API/SBExecutionContext.h" |
| |
| #include "lldb/API/SBTarget.h" |
| #include "lldb/API/SBProcess.h" |
| #include "lldb/API/SBThread.h" |
| #include "lldb/API/SBFrame.h" |
| |
| #include "lldb/Target/ExecutionContext.h" |
| |
| using namespace lldb; |
| using namespace lldb_private; |
| |
| SBExecutionContext::SBExecutionContext() : |
| m_exe_ctx_sp() |
| { |
| } |
| |
| SBExecutionContext::SBExecutionContext (const lldb::SBExecutionContext &rhs) : |
| m_exe_ctx_sp(rhs.m_exe_ctx_sp) |
| { |
| } |
| |
| SBExecutionContext::SBExecutionContext (lldb::ExecutionContextRefSP exe_ctx_ref_sp) : |
| m_exe_ctx_sp(exe_ctx_ref_sp) |
| { |
| } |
| |
| SBExecutionContext::SBExecutionContext (const lldb::SBTarget &target) : |
| m_exe_ctx_sp(new ExecutionContextRef()) |
| { |
| m_exe_ctx_sp->SetTargetSP(target.GetSP()); |
| } |
| |
| SBExecutionContext::SBExecutionContext (const lldb::SBProcess &process) : |
| m_exe_ctx_sp(new ExecutionContextRef()) |
| { |
| m_exe_ctx_sp->SetProcessSP(process.GetSP()); |
| } |
| |
| SBExecutionContext::SBExecutionContext (lldb::SBThread thread) : |
| m_exe_ctx_sp(new ExecutionContextRef()) |
| { |
| m_exe_ctx_sp->SetThreadPtr(thread.get()); |
| } |
| |
| SBExecutionContext::SBExecutionContext (const lldb::SBFrame &frame) : |
| m_exe_ctx_sp(new ExecutionContextRef()) |
| { |
| m_exe_ctx_sp->SetFrameSP(frame.GetFrameSP()); |
| } |
| |
| SBExecutionContext::~SBExecutionContext() |
| { |
| } |
| |
| const SBExecutionContext & |
| SBExecutionContext::operator = (const lldb::SBExecutionContext &rhs) |
| { |
| m_exe_ctx_sp = rhs.m_exe_ctx_sp; |
| return *this; |
| } |
| |
| ExecutionContextRef * |
| SBExecutionContext::get () const |
| { |
| return m_exe_ctx_sp.get(); |
| } |
| |
| SBTarget |
| SBExecutionContext::GetTarget () const |
| { |
| SBTarget sb_target; |
| if (m_exe_ctx_sp) |
| { |
| TargetSP target_sp(m_exe_ctx_sp->GetTargetSP()); |
| if (target_sp) |
| sb_target.SetSP(target_sp); |
| } |
| return sb_target; |
| } |
| |
| SBProcess |
| SBExecutionContext::GetProcess () const |
| { |
| SBProcess sb_process; |
| if (m_exe_ctx_sp) |
| { |
| ProcessSP process_sp(m_exe_ctx_sp->GetProcessSP()); |
| if (process_sp) |
| sb_process.SetSP(process_sp); |
| } |
| return sb_process; |
| } |
| |
| SBThread |
| SBExecutionContext::GetThread () const |
| { |
| SBThread sb_thread; |
| if (m_exe_ctx_sp) |
| { |
| ThreadSP thread_sp(m_exe_ctx_sp->GetThreadSP()); |
| if (thread_sp) |
| sb_thread.SetThread(thread_sp); |
| } |
| return sb_thread; |
| } |
| |
| SBFrame |
| SBExecutionContext::GetFrame () const |
| { |
| SBFrame sb_frame; |
| if (m_exe_ctx_sp) |
| { |
| StackFrameSP frame_sp(m_exe_ctx_sp->GetFrameSP()); |
| if (frame_sp) |
| sb_frame.SetFrameSP(frame_sp); |
| } |
| return sb_frame; |
| } |
| |