]> CyberLeo.Net >> Repos - FreeBSD/releng/10.2.git/blob - contrib/llvm/tools/lldb/include/lldb/API/SBTypeCategory.h
- Copy stable/10@285827 to releng/10.2 in preparation for 10.2-RC1
[FreeBSD/releng/10.2.git] / contrib / llvm / tools / lldb / include / lldb / API / SBTypeCategory.h
1 //===-- SBTypeCategory.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_SBTypeCategory_h_
11 #define LLDB_SBTypeCategory_h_
12
13 #include "lldb/API/SBDefines.h"
14
15 namespace lldb {
16     
17     class SBTypeCategory
18     {
19     public:
20         
21         SBTypeCategory();
22         
23         SBTypeCategory (const lldb::SBTypeCategory &rhs);
24         
25         ~SBTypeCategory ();
26         
27         bool
28         IsValid() const;
29         
30         bool
31         GetEnabled ();
32         
33         void
34         SetEnabled (bool);
35         
36         const char*
37         GetName();
38         
39         bool
40         GetDescription (lldb::SBStream &description, 
41                         lldb::DescriptionLevel description_level);
42         
43         uint32_t
44         GetNumFormats ();
45         
46         uint32_t
47         GetNumSummaries ();
48         
49         uint32_t
50         GetNumFilters ();
51         
52 #ifndef LLDB_DISABLE_PYTHON
53         uint32_t
54         GetNumSynthetics ();
55 #endif
56         
57         SBTypeNameSpecifier
58         GetTypeNameSpecifierForFilterAtIndex (uint32_t);
59         
60         SBTypeNameSpecifier
61         GetTypeNameSpecifierForFormatAtIndex (uint32_t);
62         
63         SBTypeNameSpecifier
64         GetTypeNameSpecifierForSummaryAtIndex (uint32_t);
65
66 #ifndef LLDB_DISABLE_PYTHON
67         SBTypeNameSpecifier
68         GetTypeNameSpecifierForSyntheticAtIndex (uint32_t);
69 #endif
70         
71         SBTypeFilter
72         GetFilterForType (SBTypeNameSpecifier);
73
74         SBTypeFormat
75         GetFormatForType (SBTypeNameSpecifier);
76         
77 #ifndef LLDB_DISABLE_PYTHON
78         SBTypeSummary
79         GetSummaryForType (SBTypeNameSpecifier);
80 #endif
81
82 #ifndef LLDB_DISABLE_PYTHON
83         SBTypeSynthetic
84         GetSyntheticForType (SBTypeNameSpecifier);
85 #endif
86         
87 #ifndef LLDB_DISABLE_PYTHON
88         SBTypeFilter
89         GetFilterAtIndex (uint32_t);
90 #endif
91         
92         SBTypeFormat
93         GetFormatAtIndex (uint32_t);
94         
95 #ifndef LLDB_DISABLE_PYTHON
96         SBTypeSummary
97         GetSummaryAtIndex (uint32_t);
98 #endif
99         
100 #ifndef LLDB_DISABLE_PYTHON
101         SBTypeSynthetic
102         GetSyntheticAtIndex (uint32_t);
103 #endif
104         
105         bool
106         AddTypeFormat (SBTypeNameSpecifier,
107                        SBTypeFormat);
108         
109         bool
110         DeleteTypeFormat (SBTypeNameSpecifier);
111         
112 #ifndef LLDB_DISABLE_PYTHON
113         bool
114         AddTypeSummary (SBTypeNameSpecifier,
115                         SBTypeSummary);
116 #endif
117         
118         bool
119         DeleteTypeSummary (SBTypeNameSpecifier);
120         
121         bool
122         AddTypeFilter (SBTypeNameSpecifier,
123                        SBTypeFilter);
124         
125         bool
126         DeleteTypeFilter (SBTypeNameSpecifier);
127         
128 #ifndef LLDB_DISABLE_PYTHON
129         bool
130         AddTypeSynthetic (SBTypeNameSpecifier,
131                           SBTypeSynthetic);
132         
133         bool
134         DeleteTypeSynthetic (SBTypeNameSpecifier);
135 #endif
136         
137         lldb::SBTypeCategory &
138         operator = (const lldb::SBTypeCategory &rhs);
139         
140         bool
141         operator == (lldb::SBTypeCategory &rhs);
142         
143         bool
144         operator != (lldb::SBTypeCategory &rhs);
145         
146     protected:
147         friend class SBDebugger;
148         
149         lldb::TypeCategoryImplSP
150         GetSP ();
151         
152         void
153         SetSP (const lldb::TypeCategoryImplSP &typecategory_impl_sp);    
154         
155         TypeCategoryImplSP m_opaque_sp;
156         
157         SBTypeCategory (const lldb::TypeCategoryImplSP &);
158         
159         SBTypeCategory (const char*);
160         
161         bool
162         IsDefaultCategory();
163         
164     };
165     
166 } // namespace lldb
167
168 #endif // LLDB_SBTypeCategory_h_