1 //===-- SBTypeCategory.h --------------------------------------------*- C++
4 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5 // See https://llvm.org/LICENSE.txt for license information.
6 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
8 //===----------------------------------------------------------------------===//
10 #ifndef LLDB_SBTypeCategory_h_
11 #define LLDB_SBTypeCategory_h_
13 #include "lldb/API/SBDefines.h"
17 class LLDB_API SBTypeCategory {
21 SBTypeCategory(const lldb::SBTypeCategory &rhs);
25 explicit operator bool() const;
31 void SetEnabled(bool);
33 const char *GetName();
35 lldb::LanguageType GetLanguageAtIndex(uint32_t idx);
37 uint32_t GetNumLanguages();
39 void AddLanguage(lldb::LanguageType language);
41 bool GetDescription(lldb::SBStream &description,
42 lldb::DescriptionLevel description_level);
44 uint32_t GetNumFormats();
46 uint32_t GetNumSummaries();
48 uint32_t GetNumFilters();
50 uint32_t GetNumSynthetics();
52 SBTypeNameSpecifier GetTypeNameSpecifierForFilterAtIndex(uint32_t);
54 SBTypeNameSpecifier GetTypeNameSpecifierForFormatAtIndex(uint32_t);
56 SBTypeNameSpecifier GetTypeNameSpecifierForSummaryAtIndex(uint32_t);
58 SBTypeNameSpecifier GetTypeNameSpecifierForSyntheticAtIndex(uint32_t);
60 SBTypeFilter GetFilterForType(SBTypeNameSpecifier);
62 SBTypeFormat GetFormatForType(SBTypeNameSpecifier);
64 SBTypeSummary GetSummaryForType(SBTypeNameSpecifier);
66 SBTypeSynthetic GetSyntheticForType(SBTypeNameSpecifier);
68 SBTypeFilter GetFilterAtIndex(uint32_t);
70 SBTypeFormat GetFormatAtIndex(uint32_t);
72 SBTypeSummary GetSummaryAtIndex(uint32_t);
74 SBTypeSynthetic GetSyntheticAtIndex(uint32_t);
76 bool AddTypeFormat(SBTypeNameSpecifier, SBTypeFormat);
78 bool DeleteTypeFormat(SBTypeNameSpecifier);
80 bool AddTypeSummary(SBTypeNameSpecifier, SBTypeSummary);
82 bool DeleteTypeSummary(SBTypeNameSpecifier);
84 bool AddTypeFilter(SBTypeNameSpecifier, SBTypeFilter);
86 bool DeleteTypeFilter(SBTypeNameSpecifier);
88 bool AddTypeSynthetic(SBTypeNameSpecifier, SBTypeSynthetic);
90 bool DeleteTypeSynthetic(SBTypeNameSpecifier);
92 lldb::SBTypeCategory &operator=(const lldb::SBTypeCategory &rhs);
94 bool operator==(lldb::SBTypeCategory &rhs);
96 bool operator!=(lldb::SBTypeCategory &rhs);
99 friend class SBDebugger;
101 lldb::TypeCategoryImplSP GetSP();
103 void SetSP(const lldb::TypeCategoryImplSP &typecategory_impl_sp);
105 TypeCategoryImplSP m_opaque_sp;
107 SBTypeCategory(const lldb::TypeCategoryImplSP &);
109 SBTypeCategory(const char *);
111 bool IsDefaultCategory();
116 #endif // LLDB_SBTypeCategory_h_