]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm/tools/lldb/include/lldb/API/SBTypeCategory.h
Merge ^/head r293280 through r293429.
[FreeBSD/FreeBSD.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 LLDB_API 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         lldb::LanguageType
40         GetLanguageAtIndex (uint32_t idx);
41         
42         uint32_t
43         GetNumLanguages ();
44         
45         void
46         AddLanguage (lldb::LanguageType language);
47         
48         bool
49         GetDescription (lldb::SBStream &description, 
50                         lldb::DescriptionLevel description_level);
51         
52         uint32_t
53         GetNumFormats ();
54         
55         uint32_t
56         GetNumSummaries ();
57         
58         uint32_t
59         GetNumFilters ();
60         
61 #ifndef LLDB_DISABLE_PYTHON
62         uint32_t
63         GetNumSynthetics ();
64 #endif
65         
66         SBTypeNameSpecifier
67         GetTypeNameSpecifierForFilterAtIndex (uint32_t);
68         
69         SBTypeNameSpecifier
70         GetTypeNameSpecifierForFormatAtIndex (uint32_t);
71         
72         SBTypeNameSpecifier
73         GetTypeNameSpecifierForSummaryAtIndex (uint32_t);
74
75 #ifndef LLDB_DISABLE_PYTHON
76         SBTypeNameSpecifier
77         GetTypeNameSpecifierForSyntheticAtIndex (uint32_t);
78 #endif
79         
80         SBTypeFilter
81         GetFilterForType (SBTypeNameSpecifier);
82
83         SBTypeFormat
84         GetFormatForType (SBTypeNameSpecifier);
85         
86 #ifndef LLDB_DISABLE_PYTHON
87         SBTypeSummary
88         GetSummaryForType (SBTypeNameSpecifier);
89 #endif
90
91 #ifndef LLDB_DISABLE_PYTHON
92         SBTypeSynthetic
93         GetSyntheticForType (SBTypeNameSpecifier);
94 #endif
95         
96 #ifndef LLDB_DISABLE_PYTHON
97         SBTypeFilter
98         GetFilterAtIndex (uint32_t);
99 #endif
100         
101         SBTypeFormat
102         GetFormatAtIndex (uint32_t);
103         
104 #ifndef LLDB_DISABLE_PYTHON
105         SBTypeSummary
106         GetSummaryAtIndex (uint32_t);
107 #endif
108         
109 #ifndef LLDB_DISABLE_PYTHON
110         SBTypeSynthetic
111         GetSyntheticAtIndex (uint32_t);
112 #endif
113         
114         bool
115         AddTypeFormat (SBTypeNameSpecifier,
116                        SBTypeFormat);
117         
118         bool
119         DeleteTypeFormat (SBTypeNameSpecifier);
120         
121 #ifndef LLDB_DISABLE_PYTHON
122         bool
123         AddTypeSummary (SBTypeNameSpecifier,
124                         SBTypeSummary);
125 #endif
126         
127         bool
128         DeleteTypeSummary (SBTypeNameSpecifier);
129         
130         bool
131         AddTypeFilter (SBTypeNameSpecifier,
132                        SBTypeFilter);
133         
134         bool
135         DeleteTypeFilter (SBTypeNameSpecifier);
136         
137 #ifndef LLDB_DISABLE_PYTHON
138         bool
139         AddTypeSynthetic (SBTypeNameSpecifier,
140                           SBTypeSynthetic);
141         
142         bool
143         DeleteTypeSynthetic (SBTypeNameSpecifier);
144 #endif
145         
146         lldb::SBTypeCategory &
147         operator = (const lldb::SBTypeCategory &rhs);
148         
149         bool
150         operator == (lldb::SBTypeCategory &rhs);
151         
152         bool
153         operator != (lldb::SBTypeCategory &rhs);
154         
155     protected:
156         friend class SBDebugger;
157         
158         lldb::TypeCategoryImplSP
159         GetSP ();
160         
161         void
162         SetSP (const lldb::TypeCategoryImplSP &typecategory_impl_sp);    
163         
164         TypeCategoryImplSP m_opaque_sp;
165         
166         SBTypeCategory (const lldb::TypeCategoryImplSP &);
167         
168         SBTypeCategory (const char*);
169         
170         bool
171         IsDefaultCategory();
172         
173     };
174     
175 } // namespace lldb
176
177 #endif // LLDB_SBTypeCategory_h_