blob: 6134f5cc0b21588a8f153dfd61869fcd55bf6520 [file] [log] [blame]
Jason Molenda5e8dce42013-12-13 00:29:16 +00001//===-- QueueList.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/Target/Process.h"
11#include "lldb/Target/Queue.h"
12#include "lldb/Target/QueueList.h"
13
14using namespace lldb;
15using namespace lldb_private;
16
17QueueList::QueueList (Process *process) :
18 m_process (process),
19 m_stop_id (0),
20 m_queues (),
21 m_mutex ()
22{
23}
24
25QueueList::~QueueList ()
26{
27 Clear();
28}
29
30uint32_t
31QueueList::GetSize ()
32{
33 Mutex::Locker locker (m_mutex);
34 return m_queues.size();
35}
36
37lldb::QueueSP
38QueueList::GetQueueAtIndex (uint32_t idx)
39{
40 Mutex::Locker locker (m_mutex);
41 if (idx < m_queues.size())
42 {
43 return m_queues[idx];
44 }
45 else
46 {
47 return QueueSP();
48 }
49}
50
51void
52QueueList::Clear ()
53{
54 Mutex::Locker locker (m_mutex);
55 m_queues.clear();
56}
57
58void
59QueueList::AddQueue (QueueSP queue_sp)
60{
61 Mutex::Locker locker (m_mutex);
62 if (queue_sp.get ())
63 {
64 m_queues.push_back (queue_sp);
65 }
66}
67
68lldb::QueueSP
69QueueList::FindQueueByID (lldb::queue_id_t qid)
70{
71 QueueSP ret;
72 for (QueueSP queue_sp : Queues())
73 {
74 if (queue_sp->GetID() == qid)
75 {
76 ret = queue_sp;
77 break;
78 }
79 }
80 return ret;
81}
82
83lldb::QueueSP
84QueueList::FindQueueByIndexID (uint32_t index_id)
85{
86 QueueSP ret;
87 for (QueueSP queue_sp : Queues())
88 {
89 if (queue_sp->GetIndexID() == index_id)
90 {
91 ret = queue_sp;
92 break;
93 }
94 }
95 return ret;
96}
97
98lldb_private::Mutex &
99QueueList::GetMutex ()
100{
101 return m_mutex;
102}