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