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 SBThreadCollection()17SBThreadCollection::SBThreadCollection() : m_opaque_sp() {} 18 SBThreadCollection(const SBThreadCollection & rhs)19SBThreadCollection::SBThreadCollection(const SBThreadCollection &rhs) 20 : m_opaque_sp(rhs.m_opaque_sp) {} 21 22 const SBThreadCollection &SBThreadCollection:: operator =(const SBThreadCollection & rhs)23operator=(const SBThreadCollection &rhs) { 24 if (this != &rhs) 25 m_opaque_sp = rhs.m_opaque_sp; 26 return *this; 27 } 28 SBThreadCollection(const ThreadCollectionSP & threads)29SBThreadCollection::SBThreadCollection(const ThreadCollectionSP &threads) 30 : m_opaque_sp(threads) {} 31 ~SBThreadCollection()32SBThreadCollection::~SBThreadCollection() {} 33 SetOpaque(const lldb::ThreadCollectionSP & threads)34void SBThreadCollection::SetOpaque(const lldb::ThreadCollectionSP &threads) { 35 m_opaque_sp = threads; 36 } 37 get() const38lldb_private::ThreadCollection *SBThreadCollection::get() const { 39 return m_opaque_sp.get(); 40 } 41 operator ->() const42lldb_private::ThreadCollection *SBThreadCollection::operator->() const { 43 return m_opaque_sp.operator->(); 44 } 45 operator *()46lldb::ThreadCollectionSP &SBThreadCollection::operator*() { 47 return m_opaque_sp; 48 } 49 operator *() const50const lldb::ThreadCollectionSP &SBThreadCollection::operator*() const { 51 return m_opaque_sp; 52 } 53 IsValid() const54bool SBThreadCollection::IsValid() const { return m_opaque_sp.get() != NULL; } 55 GetSize()56size_t SBThreadCollection::GetSize() { 57 if (m_opaque_sp) 58 return m_opaque_sp->GetSize(); 59 return 0; 60 } 61 GetThreadAtIndex(size_t idx)62SBThread 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