]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - include/lldb/API/SBThreadCollection.h
Vendor import of lldb trunk r290819:
[FreeBSD/FreeBSD.git] / include / lldb / API / SBThreadCollection.h
1 //===-- SBThreadCollection.h ------------------------------------*- 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 #ifndef LLDB_SBThreadCollection_h_
11 #define LLDB_SBThreadCollection_h_
12
13 #include "lldb/API/SBDefines.h"
14
15 namespace lldb {
16
17 class LLDB_API SBThreadCollection {
18 public:
19   SBThreadCollection();
20
21   SBThreadCollection(const SBThreadCollection &rhs);
22
23   const SBThreadCollection &operator=(const SBThreadCollection &rhs);
24
25   ~SBThreadCollection();
26
27   bool IsValid() const;
28
29   size_t GetSize();
30
31   lldb::SBThread GetThreadAtIndex(size_t idx);
32
33 protected:
34   // Mimic shared pointer...
35   lldb_private::ThreadCollection *get() const;
36
37   lldb_private::ThreadCollection *operator->() const;
38
39   lldb::ThreadCollectionSP &operator*();
40
41   const lldb::ThreadCollectionSP &operator*() const;
42
43   SBThreadCollection(const lldb::ThreadCollectionSP &threads);
44
45   void SetOpaque(const lldb::ThreadCollectionSP &threads);
46
47 private:
48   friend class SBProcess;
49   friend class SBThread;
50
51   lldb::ThreadCollectionSP m_opaque_sp;
52 };
53
54 } // namespace lldb
55
56 #endif // LLDB_SBThreadCollection_h_