SBQueueItem.cpp revision 269024
1//===-- SBQueueItem.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/lldb-python.h" 11#include "lldb/lldb-forward.h" 12 13#include "lldb/API/SBAddress.h" 14#include "lldb/API/SBQueueItem.h" 15#include "lldb/API/SBThread.h" 16#include "lldb/Core/Address.h" 17#include "lldb/Target/QueueItem.h" 18#include "lldb/Target/Thread.h" 19 20using namespace lldb; 21using namespace lldb_private; 22 23//---------------------------------------------------------------------- 24// Constructors 25//---------------------------------------------------------------------- 26SBQueueItem::SBQueueItem () : 27 m_queue_item_sp() 28{ 29} 30 31SBQueueItem::SBQueueItem (const QueueItemSP& queue_item_sp) : 32 m_queue_item_sp (queue_item_sp) 33{ 34} 35 36//---------------------------------------------------------------------- 37// Destructor 38//---------------------------------------------------------------------- 39SBQueueItem::~SBQueueItem() 40{ 41 m_queue_item_sp.reset(); 42} 43 44bool 45SBQueueItem::IsValid() const 46{ 47 return m_queue_item_sp.get() != NULL; 48} 49 50 51void 52SBQueueItem::Clear () 53{ 54 m_queue_item_sp.reset(); 55} 56 57 58void 59SBQueueItem::SetQueueItem (const QueueItemSP& queue_item_sp) 60{ 61 m_queue_item_sp = queue_item_sp; 62} 63 64 65lldb::QueueItemKind 66SBQueueItem::GetKind () const 67{ 68 QueueItemKind result = eQueueItemKindUnknown; 69 if (m_queue_item_sp) 70 { 71 result = m_queue_item_sp->GetKind (); 72 } 73 return result; 74} 75 76void 77SBQueueItem::SetKind (lldb::QueueItemKind kind) 78{ 79 if (m_queue_item_sp) 80 { 81 m_queue_item_sp->SetKind (kind); 82 } 83} 84 85SBAddress 86SBQueueItem::GetAddress () const 87{ 88 SBAddress result; 89 if (m_queue_item_sp) 90 { 91 result.SetAddress (&m_queue_item_sp->GetAddress()); 92 } 93 return result; 94} 95 96void 97SBQueueItem::SetAddress (SBAddress addr) 98{ 99 if (m_queue_item_sp) 100 { 101 m_queue_item_sp->SetAddress (addr.ref()); 102 } 103} 104 105SBThread 106SBQueueItem::GetExtendedBacktraceThread (const char *type) 107{ 108 SBThread result; 109 if (m_queue_item_sp) 110 { 111 ThreadSP thread_sp; 112 ConstString type_const (type); 113 thread_sp = m_queue_item_sp->GetExtendedBacktraceThread (type_const); 114 if (thread_sp) 115 { 116 result.SetThread (thread_sp); 117 } 118 } 119 return result; 120} 121