]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm/tools/lldb/include/lldb/API/SBTypeCategory.h
MFV r328233:
[FreeBSD/FreeBSD.git] / contrib / llvm / tools / lldb / include / lldb / API / SBTypeCategory.h
1 //===-- SBTypeCategory.h --------------------------------------------*- C++
2 //-*-===//
3 //
4 //                     The LLVM Compiler Infrastructure
5 //
6 // This file is distributed under the University of Illinois Open Source
7 // License. See LICENSE.TXT for details.
8 //
9 //===----------------------------------------------------------------------===//
10
11 #ifndef LLDB_SBTypeCategory_h_
12 #define LLDB_SBTypeCategory_h_
13
14 #include "lldb/API/SBDefines.h"
15
16 namespace lldb {
17
18 class LLDB_API SBTypeCategory {
19 public:
20   SBTypeCategory();
21
22   SBTypeCategory(const lldb::SBTypeCategory &rhs);
23
24   ~SBTypeCategory();
25
26   bool IsValid() const;
27
28   bool GetEnabled();
29
30   void SetEnabled(bool);
31
32   const char *GetName();
33
34   lldb::LanguageType GetLanguageAtIndex(uint32_t idx);
35
36   uint32_t GetNumLanguages();
37
38   void AddLanguage(lldb::LanguageType language);
39
40   bool GetDescription(lldb::SBStream &description,
41                       lldb::DescriptionLevel description_level);
42
43   uint32_t GetNumFormats();
44
45   uint32_t GetNumSummaries();
46
47   uint32_t GetNumFilters();
48
49 #ifndef LLDB_DISABLE_PYTHON
50   uint32_t GetNumSynthetics();
51 #endif
52
53   SBTypeNameSpecifier GetTypeNameSpecifierForFilterAtIndex(uint32_t);
54
55   SBTypeNameSpecifier GetTypeNameSpecifierForFormatAtIndex(uint32_t);
56
57   SBTypeNameSpecifier GetTypeNameSpecifierForSummaryAtIndex(uint32_t);
58
59 #ifndef LLDB_DISABLE_PYTHON
60   SBTypeNameSpecifier GetTypeNameSpecifierForSyntheticAtIndex(uint32_t);
61 #endif
62
63   SBTypeFilter GetFilterForType(SBTypeNameSpecifier);
64
65   SBTypeFormat GetFormatForType(SBTypeNameSpecifier);
66
67 #ifndef LLDB_DISABLE_PYTHON
68   SBTypeSummary GetSummaryForType(SBTypeNameSpecifier);
69 #endif
70
71 #ifndef LLDB_DISABLE_PYTHON
72   SBTypeSynthetic GetSyntheticForType(SBTypeNameSpecifier);
73 #endif
74
75 #ifndef LLDB_DISABLE_PYTHON
76   SBTypeFilter GetFilterAtIndex(uint32_t);
77 #endif
78
79   SBTypeFormat GetFormatAtIndex(uint32_t);
80
81 #ifndef LLDB_DISABLE_PYTHON
82   SBTypeSummary GetSummaryAtIndex(uint32_t);
83 #endif
84
85 #ifndef LLDB_DISABLE_PYTHON
86   SBTypeSynthetic GetSyntheticAtIndex(uint32_t);
87 #endif
88
89   bool AddTypeFormat(SBTypeNameSpecifier, SBTypeFormat);
90
91   bool DeleteTypeFormat(SBTypeNameSpecifier);
92
93 #ifndef LLDB_DISABLE_PYTHON
94   bool AddTypeSummary(SBTypeNameSpecifier, SBTypeSummary);
95 #endif
96
97   bool DeleteTypeSummary(SBTypeNameSpecifier);
98
99   bool AddTypeFilter(SBTypeNameSpecifier, SBTypeFilter);
100
101   bool DeleteTypeFilter(SBTypeNameSpecifier);
102
103 #ifndef LLDB_DISABLE_PYTHON
104   bool AddTypeSynthetic(SBTypeNameSpecifier, SBTypeSynthetic);
105
106   bool DeleteTypeSynthetic(SBTypeNameSpecifier);
107 #endif
108
109   lldb::SBTypeCategory &operator=(const lldb::SBTypeCategory &rhs);
110
111   bool operator==(lldb::SBTypeCategory &rhs);
112
113   bool operator!=(lldb::SBTypeCategory &rhs);
114
115 protected:
116   friend class SBDebugger;
117
118   lldb::TypeCategoryImplSP GetSP();
119
120   void SetSP(const lldb::TypeCategoryImplSP &typecategory_impl_sp);
121
122   TypeCategoryImplSP m_opaque_sp;
123
124   SBTypeCategory(const lldb::TypeCategoryImplSP &);
125
126   SBTypeCategory(const char *);
127
128   bool IsDefaultCategory();
129 };
130
131 } // namespace lldb
132
133 #endif // LLDB_SBTypeCategory_h_