]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm/tools/lldb/include/lldb/API/SBThreadCollection.h
Update LLDB snapshot to upstream r225923 (git 2b588ecd)
[FreeBSD/FreeBSD.git] / contrib / llvm / tools / lldb / 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 SBThreadCollection
18 {
19 public:
20     
21     SBThreadCollection ();
22     
23     SBThreadCollection (const SBThreadCollection &rhs);
24     
25     const SBThreadCollection &
26     operator = (const SBThreadCollection &rhs);
27     
28     ~SBThreadCollection ();
29     
30     bool
31     IsValid () const;
32     
33     size_t
34     GetSize ();
35     
36     lldb::SBThread
37     GetThreadAtIndex (size_t idx);
38     
39 protected:
40     
41     // Mimic shared pointer...
42     lldb_private::ThreadCollection *
43     get() const;
44     
45     lldb_private::ThreadCollection *
46     operator->() const;
47     
48     lldb::ThreadCollectionSP &
49     operator*();
50     
51     const lldb::ThreadCollectionSP &
52     operator*() const;
53     
54     SBThreadCollection (const lldb::ThreadCollectionSP &threads);
55
56     void
57     SetOpaque (const lldb::ThreadCollectionSP &threads);
58     
59 private:
60     friend class SBProcess;
61     
62     lldb::ThreadCollectionSP m_opaque_sp;
63 };
64     
65     
66 } // namespace lldb
67
68 #endif // LLDB_SBThreadCollection_h_