1 //===-- SBTypeCategory.h --------------------------------------------*- C++
4 // The LLVM Compiler Infrastructure
6 // This file is distributed under the University of Illinois Open Source
7 // License. See LICENSE.TXT for details.
9 //===----------------------------------------------------------------------===//
11 #ifndef LLDB_SBTypeCategory_h_
12 #define LLDB_SBTypeCategory_h_
14 #include "lldb/API/SBDefines.h"
18 class LLDB_API SBTypeCategory {
22 SBTypeCategory(const lldb::SBTypeCategory &rhs);
30 void SetEnabled(bool);
32 const char *GetName();
34 lldb::LanguageType GetLanguageAtIndex(uint32_t idx);
36 uint32_t GetNumLanguages();
38 void AddLanguage(lldb::LanguageType language);
40 bool GetDescription(lldb::SBStream &description,
41 lldb::DescriptionLevel description_level);
43 uint32_t GetNumFormats();
45 uint32_t GetNumSummaries();
47 uint32_t GetNumFilters();
49 #ifndef LLDB_DISABLE_PYTHON
50 uint32_t GetNumSynthetics();
53 SBTypeNameSpecifier GetTypeNameSpecifierForFilterAtIndex(uint32_t);
55 SBTypeNameSpecifier GetTypeNameSpecifierForFormatAtIndex(uint32_t);
57 SBTypeNameSpecifier GetTypeNameSpecifierForSummaryAtIndex(uint32_t);
59 #ifndef LLDB_DISABLE_PYTHON
60 SBTypeNameSpecifier GetTypeNameSpecifierForSyntheticAtIndex(uint32_t);
63 SBTypeFilter GetFilterForType(SBTypeNameSpecifier);
65 SBTypeFormat GetFormatForType(SBTypeNameSpecifier);
67 #ifndef LLDB_DISABLE_PYTHON
68 SBTypeSummary GetSummaryForType(SBTypeNameSpecifier);
71 #ifndef LLDB_DISABLE_PYTHON
72 SBTypeSynthetic GetSyntheticForType(SBTypeNameSpecifier);
75 #ifndef LLDB_DISABLE_PYTHON
76 SBTypeFilter GetFilterAtIndex(uint32_t);
79 SBTypeFormat GetFormatAtIndex(uint32_t);
81 #ifndef LLDB_DISABLE_PYTHON
82 SBTypeSummary GetSummaryAtIndex(uint32_t);
85 #ifndef LLDB_DISABLE_PYTHON
86 SBTypeSynthetic GetSyntheticAtIndex(uint32_t);
89 bool AddTypeFormat(SBTypeNameSpecifier, SBTypeFormat);
91 bool DeleteTypeFormat(SBTypeNameSpecifier);
93 #ifndef LLDB_DISABLE_PYTHON
94 bool AddTypeSummary(SBTypeNameSpecifier, SBTypeSummary);
97 bool DeleteTypeSummary(SBTypeNameSpecifier);
99 bool AddTypeFilter(SBTypeNameSpecifier, SBTypeFilter);
101 bool DeleteTypeFilter(SBTypeNameSpecifier);
103 #ifndef LLDB_DISABLE_PYTHON
104 bool AddTypeSynthetic(SBTypeNameSpecifier, SBTypeSynthetic);
106 bool DeleteTypeSynthetic(SBTypeNameSpecifier);
109 lldb::SBTypeCategory &operator=(const lldb::SBTypeCategory &rhs);
111 bool operator==(lldb::SBTypeCategory &rhs);
113 bool operator!=(lldb::SBTypeCategory &rhs);
116 friend class SBDebugger;
118 lldb::TypeCategoryImplSP GetSP();
120 void SetSP(const lldb::TypeCategoryImplSP &typecategory_impl_sp);
122 TypeCategoryImplSP m_opaque_sp;
124 SBTypeCategory(const lldb::TypeCategoryImplSP &);
126 SBTypeCategory(const char *);
128 bool IsDefaultCategory();
133 #endif // LLDB_SBTypeCategory_h_