1 //===-- SBThreadCollection.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/API/SBThreadCollection.h" 11 #include "lldb/API/SBThread.h" 12 #include "lldb/Target/ThreadList.h" 13 14 using namespace lldb; 15 using namespace lldb_private; 16 17 SBThreadCollection::SBThreadCollection() : m_opaque_sp() {} 18 19 SBThreadCollection::SBThreadCollection(const SBThreadCollection &rhs) 20 : m_opaque_sp(rhs.m_opaque_sp) {} 21 22 const SBThreadCollection &SBThreadCollection:: 23 operator=(const SBThreadCollection &rhs) { 24 if (this != &rhs) 25 m_opaque_sp = rhs.m_opaque_sp; 26 return *this; 27 } 28 29 SBThreadCollection::SBThreadCollection(const ThreadCollectionSP &threads) 30 : m_opaque_sp(threads) {} 31 32 SBThreadCollection::~SBThreadCollection() {} 33 34 void SBThreadCollection::SetOpaque(const lldb::ThreadCollectionSP &threads) { 35 m_opaque_sp = threads; 36 } 37 38 lldb_private::ThreadCollection *SBThreadCollection::get() const { 39 return m_opaque_sp.get(); 40 } 41 42 lldb_private::ThreadCollection *SBThreadCollection::operator->() const { 43 return m_opaque_sp.operator->(); 44 } 45 46 lldb::ThreadCollectionSP &SBThreadCollection::operator*() { 47 return m_opaque_sp; 48 } 49 50 const lldb::ThreadCollectionSP &SBThreadCollection::operator*() const { 51 return m_opaque_sp; 52 } 53 54 bool SBThreadCollection::IsValid() const { return m_opaque_sp.get() != NULL; } 55 56 size_t SBThreadCollection::GetSize() { 57 if (m_opaque_sp) 58 return m_opaque_sp->GetSize(); 59 return 0; 60 } 61 62 SBThread SBThreadCollection::GetThreadAtIndex(size_t idx) { 63 SBThread thread; 64 if (m_opaque_sp && idx < m_opaque_sp->GetSize()) 65 thread = m_opaque_sp->GetThreadAtIndex(idx); 66 return thread; 67 } 68