1262182Semaste//===-- QueueList.cpp -------------------------------------------*- C++ -*-===// 2262182Semaste// 3262182Semaste// The LLVM Compiler Infrastructure 4262182Semaste// 5262182Semaste// This file is distributed under the University of Illinois Open Source 6262182Semaste// License. See LICENSE.TXT for details. 7262182Semaste// 8262182Semaste//===----------------------------------------------------------------------===// 9262182Semaste 10262182Semaste#include "lldb/Target/Process.h" 11262182Semaste#include "lldb/Target/Queue.h" 12262182Semaste#include "lldb/Target/QueueList.h" 13262182Semaste 14262182Semasteusing namespace lldb; 15262182Semasteusing namespace lldb_private; 16262182Semaste 17262182SemasteQueueList::QueueList (Process *process) : 18262182Semaste m_process (process), 19262182Semaste m_stop_id (0), 20262182Semaste m_queues (), 21262182Semaste m_mutex () 22262182Semaste{ 23262182Semaste} 24262182Semaste 25262182SemasteQueueList::~QueueList () 26262182Semaste{ 27262182Semaste Clear(); 28262182Semaste} 29262182Semaste 30262182Semasteuint32_t 31262182SemasteQueueList::GetSize () 32262182Semaste{ 33262182Semaste Mutex::Locker locker (m_mutex); 34262182Semaste return m_queues.size(); 35262182Semaste} 36262182Semaste 37262182Semastelldb::QueueSP 38262182SemasteQueueList::GetQueueAtIndex (uint32_t idx) 39262182Semaste{ 40262182Semaste Mutex::Locker locker (m_mutex); 41262182Semaste if (idx < m_queues.size()) 42262182Semaste { 43262182Semaste return m_queues[idx]; 44262182Semaste } 45262182Semaste else 46262182Semaste { 47262182Semaste return QueueSP(); 48262182Semaste } 49262182Semaste} 50262182Semaste 51262182Semastevoid 52262182SemasteQueueList::Clear () 53262182Semaste{ 54262182Semaste Mutex::Locker locker (m_mutex); 55262182Semaste m_queues.clear(); 56262182Semaste} 57262182Semaste 58262182Semastevoid 59262182SemasteQueueList::AddQueue (QueueSP queue_sp) 60262182Semaste{ 61262182Semaste Mutex::Locker locker (m_mutex); 62262182Semaste if (queue_sp.get ()) 63262182Semaste { 64262182Semaste m_queues.push_back (queue_sp); 65262182Semaste } 66262182Semaste} 67262182Semaste 68262182Semastelldb::QueueSP 69262182SemasteQueueList::FindQueueByID (lldb::queue_id_t qid) 70262182Semaste{ 71262182Semaste QueueSP ret; 72262182Semaste for (QueueSP queue_sp : Queues()) 73262182Semaste { 74262182Semaste if (queue_sp->GetID() == qid) 75262182Semaste { 76262182Semaste ret = queue_sp; 77262182Semaste break; 78262182Semaste } 79262182Semaste } 80262182Semaste return ret; 81262182Semaste} 82262182Semaste 83262182Semastelldb::QueueSP 84262182SemasteQueueList::FindQueueByIndexID (uint32_t index_id) 85262182Semaste{ 86262182Semaste QueueSP ret; 87262182Semaste for (QueueSP queue_sp : Queues()) 88262182Semaste { 89262182Semaste if (queue_sp->GetIndexID() == index_id) 90262182Semaste { 91262182Semaste ret = queue_sp; 92262182Semaste break; 93262182Semaste } 94262182Semaste } 95262182Semaste return ret; 96262182Semaste} 97262182Semaste 98262182Semastelldb_private::Mutex & 99262182SemasteQueueList::GetMutex () 100262182Semaste{ 101262182Semaste return m_mutex; 102262182Semaste} 103