blob: f44dfc451e44d063a90d0dbfd4504841f7f5add4 [file] [log] [blame]
//===-- 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_