//===-- SBTypeCategory.h --------------------------------------------*- C++ //-*-===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// #ifndef LLDB_SBTypeCategory_h_ #define LLDB_SBTypeCategory_h_ #include "lldb/API/SBDefines.h" namespace lldb { class LLDB_API SBTypeCategory { public: SBTypeCategory(); SBTypeCategory(const lldb::SBTypeCategory &rhs); ~SBTypeCategory(); bool IsValid() const; bool GetEnabled(); void SetEnabled(bool); const char *GetName(); lldb::LanguageType GetLanguageAtIndex(uint32_t idx); uint32_t GetNumLanguages(); void AddLanguage(lldb::LanguageType language); bool GetDescription(lldb::SBStream &description, lldb::DescriptionLevel description_level); uint32_t GetNumFormats(); uint32_t GetNumSummaries(); uint32_t GetNumFilters(); #ifndef LLDB_DISABLE_PYTHON uint32_t GetNumSynthetics(); #endif SBTypeNameSpecifier GetTypeNameSpecifierForFilterAtIndex(uint32_t); SBTypeNameSpecifier GetTypeNameSpecifierForFormatAtIndex(uint32_t); SBTypeNameSpecifier GetTypeNameSpecifierForSummaryAtIndex(uint32_t); #ifndef LLDB_DISABLE_PYTHON SBTypeNameSpecifier GetTypeNameSpecifierForSyntheticAtIndex(uint32_t); #endif SBTypeFilter GetFilterForType(SBTypeNameSpecifier); SBTypeFormat GetFormatForType(SBTypeNameSpecifier); #ifndef LLDB_DISABLE_PYTHON SBTypeSummary GetSummaryForType(SBTypeNameSpecifier); #endif #ifndef LLDB_DISABLE_PYTHON SBTypeSynthetic GetSyntheticForType(SBTypeNameSpecifier); #endif #ifndef LLDB_DISABLE_PYTHON SBTypeFilter GetFilterAtIndex(uint32_t); #endif SBTypeFormat GetFormatAtIndex(uint32_t); #ifndef LLDB_DISABLE_PYTHON SBTypeSummary GetSummaryAtIndex(uint32_t); #endif #ifndef LLDB_DISABLE_PYTHON SBTypeSynthetic GetSyntheticAtIndex(uint32_t); #endif bool AddTypeFormat(SBTypeNameSpecifier, SBTypeFormat); bool DeleteTypeFormat(SBTypeNameSpecifier); #ifndef LLDB_DISABLE_PYTHON bool AddTypeSummary(SBTypeNameSpecifier, SBTypeSummary); #endif bool DeleteTypeSummary(SBTypeNameSpecifier); bool AddTypeFilter(SBTypeNameSpecifier, SBTypeFilter); bool DeleteTypeFilter(SBTypeNameSpecifier); #ifndef LLDB_DISABLE_PYTHON bool AddTypeSynthetic(SBTypeNameSpecifier, SBTypeSynthetic); bool DeleteTypeSynthetic(SBTypeNameSpecifier); #endif lldb::SBTypeCategory &operator=(const lldb::SBTypeCategory &rhs); bool operator==(lldb::SBTypeCategory &rhs); bool operator!=(lldb::SBTypeCategory &rhs); protected: friend class SBDebugger; lldb::TypeCategoryImplSP GetSP(); void SetSP(const lldb::TypeCategoryImplSP &typecategory_impl_sp); TypeCategoryImplSP m_opaque_sp; SBTypeCategory(const lldb::TypeCategoryImplSP &); SBTypeCategory(const char *); bool IsDefaultCategory(); }; } // namespace lldb #endif // LLDB_SBTypeCategory_h_