1 //===-- SBThreadCollection.h ------------------------------------*- C++ -*-===//
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
9 #ifndef LLDB_SBThreadCollection_h_
10 #define LLDB_SBThreadCollection_h_
12 #include "lldb/API/SBDefines.h"
16 class LLDB_API SBThreadCollection {
20 SBThreadCollection(const SBThreadCollection &rhs);
22 const SBThreadCollection &operator=(const SBThreadCollection &rhs);
24 ~SBThreadCollection();
26 explicit operator bool() const;
32 lldb::SBThread GetThreadAtIndex(size_t idx);
35 // Mimic shared pointer...
36 lldb_private::ThreadCollection *get() const;
38 lldb_private::ThreadCollection *operator->() const;
40 lldb::ThreadCollectionSP &operator*();
42 const lldb::ThreadCollectionSP &operator*() const;
44 SBThreadCollection(const lldb::ThreadCollectionSP &threads);
46 void SetOpaque(const lldb::ThreadCollectionSP &threads);
49 friend class SBProcess;
50 friend class SBThread;
52 lldb::ThreadCollectionSP m_opaque_sp;
57 #endif // LLDB_SBThreadCollection_h_