116376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata//===-- SBTypeCategory.h --------------------------------------------*- C++ -*-===// 216376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata// 316376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata// The LLVM Compiler Infrastructure 416376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata// 516376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata// This file is distributed under the University of Illinois Open Source 616376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata// License. See LICENSE.TXT for details. 716376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata// 816376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata//===----------------------------------------------------------------------===// 916376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 1016376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata#ifndef LLDB_SBTypeCategory_h_ 1116376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata#define LLDB_SBTypeCategory_h_ 1216376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 1316376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata#include "lldb/API/SBDefines.h" 1416376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 1516376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granatanamespace lldb { 1616376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 1716376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata class SBTypeCategory 1816376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata { 1916376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata public: 2016376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 2116376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata SBTypeCategory(); 2216376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 2316376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata SBTypeCategory (const lldb::SBTypeCategory &rhs); 2416376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 2516376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata ~SBTypeCategory (); 2616376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 2716376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata bool 2816376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata IsValid() const; 2916376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 3016376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata bool 3116376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata GetEnabled (); 3216376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 3316376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata void 3416376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata SetEnabled (bool); 3516376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 3616376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata const char* 3716376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata GetName(); 3816376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 3916376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata bool 4016376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata GetDescription (lldb::SBStream &description, 4116376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata lldb::DescriptionLevel description_level); 4216376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 4316376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata uint32_t 4416376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata GetNumFormats (); 4516376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 4616376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata uint32_t 4716376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata GetNumSummaries (); 4816376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 4916376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata uint32_t 5016376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata GetNumFilters (); 5116376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 52c48ca82920bd333c7ccb6ec0e579207add130296Jason Molenda#ifndef LLDB_DISABLE_PYTHON 5316376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata uint32_t 5416376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata GetNumSynthetics (); 55c48ca82920bd333c7ccb6ec0e579207add130296Jason Molenda#endif 5616376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 5716376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata SBTypeNameSpecifier 5816376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata GetTypeNameSpecifierForFilterAtIndex (uint32_t); 5916376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 6016376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata SBTypeNameSpecifier 6116376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata GetTypeNameSpecifierForFormatAtIndex (uint32_t); 6216376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 6316376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata SBTypeNameSpecifier 6416376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata GetTypeNameSpecifierForSummaryAtIndex (uint32_t); 6516376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 66c48ca82920bd333c7ccb6ec0e579207add130296Jason Molenda#ifndef LLDB_DISABLE_PYTHON 6716376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata SBTypeNameSpecifier 6816376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata GetTypeNameSpecifierForSyntheticAtIndex (uint32_t); 69c48ca82920bd333c7ccb6ec0e579207add130296Jason Molenda#endif 7016376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 7116376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata SBTypeFilter 7216376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata GetFilterForType (SBTypeNameSpecifier); 7316376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 7416376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata SBTypeFormat 7516376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata GetFormatForType (SBTypeNameSpecifier); 7616376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 77c48ca82920bd333c7ccb6ec0e579207add130296Jason Molenda#ifndef LLDB_DISABLE_PYTHON 7816376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata SBTypeSummary 7916376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata GetSummaryForType (SBTypeNameSpecifier); 80c48ca82920bd333c7ccb6ec0e579207add130296Jason Molenda#endif 8116376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 82c48ca82920bd333c7ccb6ec0e579207add130296Jason Molenda#ifndef LLDB_DISABLE_PYTHON 8316376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata SBTypeSynthetic 8416376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata GetSyntheticForType (SBTypeNameSpecifier); 85c48ca82920bd333c7ccb6ec0e579207add130296Jason Molenda#endif 8616376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 87c48ca82920bd333c7ccb6ec0e579207add130296Jason Molenda#ifndef LLDB_DISABLE_PYTHON 8816376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata SBTypeFilter 8916376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata GetFilterAtIndex (uint32_t); 90c48ca82920bd333c7ccb6ec0e579207add130296Jason Molenda#endif 9116376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 9216376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata SBTypeFormat 9316376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata GetFormatAtIndex (uint32_t); 9416376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 95c48ca82920bd333c7ccb6ec0e579207add130296Jason Molenda#ifndef LLDB_DISABLE_PYTHON 9616376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata SBTypeSummary 9716376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata GetSummaryAtIndex (uint32_t); 98c48ca82920bd333c7ccb6ec0e579207add130296Jason Molenda#endif 9916376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 100c48ca82920bd333c7ccb6ec0e579207add130296Jason Molenda#ifndef LLDB_DISABLE_PYTHON 10116376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata SBTypeSynthetic 10216376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata GetSyntheticAtIndex (uint32_t); 103c48ca82920bd333c7ccb6ec0e579207add130296Jason Molenda#endif 10416376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 10516376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata bool 10616376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata AddTypeFormat (SBTypeNameSpecifier, 10716376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata SBTypeFormat); 10816376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 10916376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata bool 11016376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata DeleteTypeFormat (SBTypeNameSpecifier); 11116376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 112c48ca82920bd333c7ccb6ec0e579207add130296Jason Molenda#ifndef LLDB_DISABLE_PYTHON 11316376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata bool 11416376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata AddTypeSummary (SBTypeNameSpecifier, 11516376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata SBTypeSummary); 116c48ca82920bd333c7ccb6ec0e579207add130296Jason Molenda#endif 11716376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 11816376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata bool 11916376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata DeleteTypeSummary (SBTypeNameSpecifier); 12016376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 12116376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata bool 12216376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata AddTypeFilter (SBTypeNameSpecifier, 12316376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata SBTypeFilter); 12416376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 12516376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata bool 12616376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata DeleteTypeFilter (SBTypeNameSpecifier); 12716376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 128c48ca82920bd333c7ccb6ec0e579207add130296Jason Molenda#ifndef LLDB_DISABLE_PYTHON 12916376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata bool 13016376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata AddTypeSynthetic (SBTypeNameSpecifier, 13116376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata SBTypeSynthetic); 13216376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 13316376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata bool 13416376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata DeleteTypeSynthetic (SBTypeNameSpecifier); 135c48ca82920bd333c7ccb6ec0e579207add130296Jason Molenda#endif 13616376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 13716376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata lldb::SBTypeCategory & 13816376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata operator = (const lldb::SBTypeCategory &rhs); 13916376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 14016376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata bool 14116376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata operator == (lldb::SBTypeCategory &rhs); 14216376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 14316376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata bool 14416376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata operator != (lldb::SBTypeCategory &rhs); 14516376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 14616376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata protected: 14716376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata friend class SBDebugger; 14816376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 14916376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata lldb::TypeCategoryImplSP 15016376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata GetSP (); 15116376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 15216376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata void 15316376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata SetSP (const lldb::TypeCategoryImplSP &typecategory_impl_sp); 15416376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 15516376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata TypeCategoryImplSP m_opaque_sp; 15616376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 15716376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata SBTypeCategory (const lldb::TypeCategoryImplSP &); 15816376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 15916376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata SBTypeCategory (const char*); 16016376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 16116376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata bool 16216376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata IsDefaultCategory(); 16316376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 16416376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata }; 16516376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 16616376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata} // namespace lldb 16716376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 16816376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata#endif // LLDB_SBTypeCategory_h_ 169