//===-- SBThreadCollection.h ------------------------------------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #ifndef LLDB_SBThreadCollection_h_ #define LLDB_SBThreadCollection_h_ #include "lldb/API/SBDefines.h" namespace lldb { class LLDB_API SBThreadCollection { public: SBThreadCollection(); SBThreadCollection(const SBThreadCollection &rhs); const SBThreadCollection &operator=(const SBThreadCollection &rhs); ~SBThreadCollection(); explicit operator bool() const; bool IsValid() const; size_t GetSize(); lldb::SBThread GetThreadAtIndex(size_t idx); protected: // Mimic shared pointer... lldb_private::ThreadCollection *get() const; lldb_private::ThreadCollection *operator->() const; lldb::ThreadCollectionSP &operator*(); const lldb::ThreadCollectionSP &operator*() const; SBThreadCollection(const lldb::ThreadCollectionSP &threads); void SetOpaque(const lldb::ThreadCollectionSP &threads); private: friend class SBProcess; friend class SBThread; lldb::ThreadCollectionSP m_opaque_sp; }; } // namespace lldb #endif // LLDB_SBThreadCollection_h_