1262182Semaste//===-- SBQueue.h -----------------------------------------------*- 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#ifndef LLDB_SBQueue_h_ 11262182Semaste#define LLDB_SBQueue_h_ 12262182Semaste 13262182Semaste#include <vector> 14262182Semaste 15262182Semaste#include "lldb/lldb-forward.h" 16262182Semaste#include "lldb/API/SBDefines.h" 17262182Semaste#include "lldb/API/SBQueueItem.h" 18262182Semaste 19262182Semastenamespace lldb { 20262182Semaste 21262182Semasteclass SBQueue 22262182Semaste{ 23262182Semastepublic: 24262182Semaste SBQueue (); 25262182Semaste 26262182Semaste SBQueue (const QueueSP& queue_sp); 27262182Semaste 28262182Semaste SBQueue (const SBQueue& rhs); 29262182Semaste 30262182Semaste const SBQueue & 31262182Semaste operator= (const lldb::SBQueue& rhs); 32262182Semaste 33262182Semaste ~SBQueue(); 34262182Semaste 35262182Semaste bool 36262182Semaste IsValid() const; 37262182Semaste 38262182Semaste void 39262182Semaste Clear (); 40262182Semaste 41262182Semaste lldb::SBProcess 42262182Semaste GetProcess (); 43262182Semaste 44262182Semaste lldb::queue_id_t 45262182Semaste GetQueueID () const; 46262182Semaste 47262182Semaste const char * 48262182Semaste GetName () const; 49262182Semaste 50262182Semaste uint32_t 51262182Semaste GetIndexID () const; 52262182Semaste 53262182Semaste uint32_t 54262182Semaste GetNumThreads (); 55262182Semaste 56262182Semaste lldb::SBThread 57262182Semaste GetThreadAtIndex (uint32_t); 58262182Semaste 59262182Semaste uint32_t 60262182Semaste GetNumPendingItems (); 61262182Semaste 62262182Semaste lldb::SBQueueItem 63262182Semaste GetPendingItemAtIndex (uint32_t); 64262182Semaste 65262182Semasteprotected: 66262182Semaste friend class SBProcess; 67262182Semaste 68262182Semaste void 69262182Semaste SetQueue (const lldb::QueueSP& queue_sp); 70262182Semaste 71262182Semaste void 72262182Semaste FetchThreads (); 73262182Semaste 74262182Semaste void 75262182Semaste FetchItems (); 76262182Semaste 77262182Semasteprivate: 78262182Semaste std::shared_ptr<lldb_private::QueueImpl> m_opaque_sp; 79262182Semaste}; 80262182Semaste 81262182Semaste} // namespace lldb 82262182Semaste 83262182Semaste#endif // LLDB_SBQueue_h_ 84