1//===-- 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} 103