blob: 481d51e554268d83cb8c7b1c57041bcc93a2df7e [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"
Jason Molenda2fd83352014-02-05 05:44:54 +000018#include "lldb/Target/Thread.h"
Jason Molenda5e8dce42013-12-13 00:29:16 +000019
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}