]> CyberLeo.Net >> Repos - FreeBSD/releng/10.2.git/blob - contrib/llvm/tools/lldb/source/API/SBQueueItem.cpp
- Copy stable/10@285827 to releng/10.2 in preparation for 10.2-RC1
[FreeBSD/releng/10.2.git] / contrib / llvm / tools / lldb / source / API / SBQueueItem.cpp
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
20 using namespace lldb;
21 using namespace lldb_private;
22
23 //----------------------------------------------------------------------
24 // Constructors
25 //----------------------------------------------------------------------
26 SBQueueItem::SBQueueItem () :
27     m_queue_item_sp()
28 {
29 }
30
31 SBQueueItem::SBQueueItem (const QueueItemSP& queue_item_sp) :
32     m_queue_item_sp (queue_item_sp)
33 {
34 }
35
36 //----------------------------------------------------------------------
37 // Destructor
38 //----------------------------------------------------------------------
39 SBQueueItem::~SBQueueItem()
40 {
41     m_queue_item_sp.reset();
42 }
43
44 bool
45 SBQueueItem::IsValid() const
46 {
47     return m_queue_item_sp.get() != NULL;
48 }
49
50
51 void
52 SBQueueItem::Clear ()
53 {
54     m_queue_item_sp.reset();
55 }
56
57
58 void
59 SBQueueItem::SetQueueItem (const QueueItemSP& queue_item_sp)
60 {
61     m_queue_item_sp = queue_item_sp;
62 }
63
64
65 lldb::QueueItemKind
66 SBQueueItem::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
76 void
77 SBQueueItem::SetKind (lldb::QueueItemKind kind)
78 {
79     if (m_queue_item_sp)
80     {
81         m_queue_item_sp->SetKind (kind);
82     }
83 }
84
85 SBAddress
86 SBQueueItem::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
96 void
97 SBQueueItem::SetAddress (SBAddress addr)
98 {
99     if (m_queue_item_sp)
100     {
101         m_queue_item_sp->SetAddress (addr.ref());
102     }
103 }
104
105 SBThread
106 SBQueueItem::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 }