LLDB  mainline
Classes | Public Types | Public Member Functions | Static Public Attributes | Private Types | Private Member Functions | Private Attributes | Friends | List of all members
lldb_private::TypeCategoryImpl Class Reference

#include <TypeCategory.h>

Collaboration diagram for lldb_private::TypeCategoryImpl:
Collaboration graph
[legend]

Classes

class  ForEachCallbacks
 

Public Types

typedef uint16_t FormatCategoryItems
 
typedef FormatContainer::ExactMatchContainerSP FormatContainerSP
 
typedef FormatContainer::RegexMatchContainerSP RegexFormatContainerSP
 
typedef SummaryContainer::ExactMatchContainerSP SummaryContainerSP
 
typedef SummaryContainer::RegexMatchContainerSP RegexSummaryContainerSP
 
typedef FilterContainer::ExactMatchContainerSP FilterContainerSP
 
typedef FilterContainer::RegexMatchContainerSP RegexFilterContainerSP
 
typedef SynthContainer::ExactMatchContainerSP SynthContainerSP
 
typedef SynthContainer::RegexMatchContainerSP RegexSynthContainerSP
 
typedef std::shared_ptr< TypeCategoryImplSharedPointer
 

Public Member Functions

 TypeCategoryImpl (IFormatChangeListener *clist, ConstString name)
 
template<typename T >
void ForEach (const ForEachCallbacks< T > &foreach)
 
FormatContainerSP GetTypeFormatsContainer ()
 
RegexFormatContainerSP GetRegexTypeFormatsContainer ()
 
FormatContainerGetFormatContainer ()
 
SummaryContainerSP GetTypeSummariesContainer ()
 
RegexSummaryContainerSP GetRegexTypeSummariesContainer ()
 
SummaryContainerGetSummaryContainer ()
 
FilterContainerSP GetTypeFiltersContainer ()
 
RegexFilterContainerSP GetRegexTypeFiltersContainer ()
 
FilterContainerGetFilterContainer ()
 
FormatContainer::MapValueType GetFormatForType (lldb::TypeNameSpecifierImplSP type_sp)
 
SummaryContainer::MapValueType GetSummaryForType (lldb::TypeNameSpecifierImplSP type_sp)
 
FilterContainer::MapValueType GetFilterForType (lldb::TypeNameSpecifierImplSP type_sp)
 
SynthContainer::MapValueType GetSyntheticForType (lldb::TypeNameSpecifierImplSP type_sp)
 
lldb::TypeNameSpecifierImplSP GetTypeNameSpecifierForFormatAtIndex (size_t index)
 
lldb::TypeNameSpecifierImplSP GetTypeNameSpecifierForSummaryAtIndex (size_t index)
 
FormatContainer::MapValueType GetFormatAtIndex (size_t index)
 
SummaryContainer::MapValueType GetSummaryAtIndex (size_t index)
 
FilterContainer::MapValueType GetFilterAtIndex (size_t index)
 
lldb::TypeNameSpecifierImplSP GetTypeNameSpecifierForFilterAtIndex (size_t index)
 
SynthContainerSP GetTypeSyntheticsContainer ()
 
RegexSynthContainerSP GetRegexTypeSyntheticsContainer ()
 
SynthContainerGetSyntheticsContainer ()
 
SynthContainer::MapValueType GetSyntheticAtIndex (size_t index)
 
lldb::TypeNameSpecifierImplSP GetTypeNameSpecifierForSyntheticAtIndex (size_t index)
 
bool IsEnabled () const
 
uint32_t GetEnabledPosition ()
 
bool Get (lldb::LanguageType lang, const FormattersMatchVector &candidates, lldb::TypeFormatImplSP &entry)
 
bool Get (lldb::LanguageType lang, const FormattersMatchVector &candidates, lldb::TypeSummaryImplSP &entry)
 
bool Get (lldb::LanguageType lang, const FormattersMatchVector &candidates, lldb::SyntheticChildrenSP &entry)
 
void Clear (FormatCategoryItems items=ALL_ITEM_TYPES)
 
bool Delete (ConstString name, FormatCategoryItems items=ALL_ITEM_TYPES)
 
uint32_t GetCount (FormatCategoryItems items=ALL_ITEM_TYPES)
 
const char * GetName ()
 
size_t GetNumLanguages ()
 
lldb::LanguageType GetLanguageAtIndex (size_t idx)
 
void AddLanguage (lldb::LanguageType lang)
 
std::string GetDescription ()
 
bool AnyMatches (ConstString type_name, FormatCategoryItems items=ALL_ITEM_TYPES, bool only_enabled=true, const char **matching_category=nullptr, FormatCategoryItems *matching_type=nullptr)
 

Static Public Attributes

static const uint16_t ALL_ITEM_TYPES = UINT16_MAX
 

Private Types

typedef FormatterContainerPair< TypeFormatImplFormatContainer
 
typedef FormatterContainerPair< TypeSummaryImplSummaryContainer
 
typedef FormatterContainerPair< TypeFilterImplFilterContainer
 
typedef FormatterContainerPair< SyntheticChildrenSynthContainer
 

Private Member Functions

void Enable (bool value, uint32_t position)
 
void Disable ()
 
bool IsApplicable (lldb::LanguageType lang)
 
uint32_t GetLastEnabledPosition ()
 
void SetEnabledPosition (uint32_t p)
 

Private Attributes

FormatContainer m_format_cont
 
SummaryContainer m_summary_cont
 
FilterContainer m_filter_cont
 
SynthContainer m_synth_cont
 
bool m_enabled
 
IFormatChangeListenerm_change_listener
 
std::recursive_mutex m_mutex
 
ConstString m_name
 
std::vector< lldb::LanguageTypem_languages
 
uint32_t m_enabled_position
 

Friends

class FormatManager
 
class LanguageCategory
 
class TypeCategoryMap
 
class FormattersContainer< ConstString, TypeFormatImpl >
 
class FormattersContainer< lldb::RegularExpressionSP, TypeFormatImpl >
 
class FormattersContainer< ConstString, TypeSummaryImpl >
 
class FormattersContainer< lldb::RegularExpressionSP, TypeSummaryImpl >
 
class FormattersContainer< ConstString, TypeFilterImpl >
 
class FormattersContainer< lldb::RegularExpressionSP, TypeFilterImpl >
 
class FormattersContainer< ConstString, ScriptedSyntheticChildren >
 
class FormattersContainer< lldb::RegularExpressionSP, ScriptedSyntheticChildren >
 

Detailed Description

Definition at line 65 of file TypeCategory.h.

Member Typedef Documentation

◆ FilterContainer

Definition at line 69 of file TypeCategory.h.

◆ FilterContainerSP

Definition at line 82 of file TypeCategory.h.

◆ FormatCategoryItems

Definition at line 73 of file TypeCategory.h.

◆ FormatContainer

Definition at line 67 of file TypeCategory.h.

◆ FormatContainerSP

Definition at line 76 of file TypeCategory.h.

◆ RegexFilterContainerSP

Definition at line 83 of file TypeCategory.h.

◆ RegexFormatContainerSP

Definition at line 77 of file TypeCategory.h.

◆ RegexSummaryContainerSP

Definition at line 80 of file TypeCategory.h.

◆ RegexSynthContainerSP

Definition at line 86 of file TypeCategory.h.

◆ SharedPointer

Definition at line 318 of file TypeCategory.h.

◆ SummaryContainer

Definition at line 68 of file TypeCategory.h.

◆ SummaryContainerSP

Definition at line 79 of file TypeCategory.h.

◆ SynthContainer

Definition at line 70 of file TypeCategory.h.

◆ SynthContainerSP

Definition at line 85 of file TypeCategory.h.

Constructor & Destructor Documentation

◆ TypeCategoryImpl()

TypeCategoryImpl::TypeCategoryImpl ( IFormatChangeListener clist,
ConstString  name 
)

Definition at line 16 of file TypeCategory.cpp.

Member Function Documentation

◆ AddLanguage()

void TypeCategoryImpl::AddLanguage ( lldb::LanguageType  lang)

Definition at line 83 of file TypeCategory.cpp.

References m_languages.

◆ AnyMatches()

bool TypeCategoryImpl::AnyMatches ( ConstString  type_name,
FormatCategoryItems  items = ALL_ITEM_TYPES,
bool  only_enabled = true,
const char **  matching_category = nullptr,
FormatCategoryItems matching_type = nullptr 
)

◆ Clear()

void TypeCategoryImpl::Clear ( FormatCategoryItems  items = ALL_ITEM_TYPES)

◆ Delete()

bool TypeCategoryImpl::Delete ( ConstString  name,
FormatCategoryItems  items = ALL_ITEM_TYPES 
)

◆ Disable()

void lldb_private::TypeCategoryImpl::Disable ( )
inlineprivate

Definition at line 340 of file TypeCategory.h.

References IsApplicable(), and UINT32_MAX.

◆ Enable()

void TypeCategoryImpl::Enable ( bool  value,
uint32_t  position 
)
private

◆ ForEach()

template<typename T >
void lldb_private::TypeCategoryImpl::ForEach ( const ForEachCallbacks< T > &  foreach)
inline

Definition at line 191 of file TypeCategory.h.

◆ Get() [1/3]

bool TypeCategoryImpl::Get ( lldb::LanguageType  lang,
const FormattersMatchVector candidates,
lldb::TypeFormatImplSP &  entry 
)

◆ Get() [2/3]

bool TypeCategoryImpl::Get ( lldb::LanguageType  lang,
const FormattersMatchVector candidates,
lldb::TypeSummaryImplSP &  entry 
)

◆ Get() [3/3]

bool TypeCategoryImpl::Get ( lldb::LanguageType  lang,
const FormattersMatchVector candidates,
lldb::SyntheticChildrenSP &  entry 
)

◆ GetCount()

uint32_t TypeCategoryImpl::GetCount ( FormatCategoryItems  items = ALL_ITEM_TYPES)

◆ GetDescription()

std::string TypeCategoryImpl::GetDescription ( )

◆ GetEnabledPosition()

uint32_t lldb_private::TypeCategoryImpl::GetEnabledPosition ( )
inline

◆ GetFilterAtIndex()

TypeCategoryImpl::FilterContainer::MapValueType TypeCategoryImpl::GetFilterAtIndex ( size_t  index)

◆ GetFilterContainer()

FilterContainer& lldb_private::TypeCategoryImpl::GetFilterContainer ( )
inline

Definition at line 234 of file TypeCategory.h.

◆ GetFilterForType()

TypeCategoryImpl::FilterContainer::MapValueType TypeCategoryImpl::GetFilterForType ( lldb::TypeNameSpecifierImplSP  type_sp)

Definition at line 354 of file TypeCategory.cpp.

References GetRegexTypeFiltersContainer(), and GetTypeFiltersContainer().

◆ GetFormatAtIndex()

TypeCategoryImpl::FormatContainer::MapValueType TypeCategoryImpl::GetFormatAtIndex ( size_t  index)

◆ GetFormatContainer()

FormatContainer& lldb_private::TypeCategoryImpl::GetFormatContainer ( )
inline

Definition at line 214 of file TypeCategory.h.

◆ GetFormatForType()

TypeCategoryImpl::FormatContainer::MapValueType TypeCategoryImpl::GetFormatForType ( lldb::TypeNameSpecifierImplSP  type_sp)

Definition at line 322 of file TypeCategory.cpp.

References GetRegexTypeFormatsContainer(), and GetTypeFormatsContainer().

◆ GetLanguageAtIndex()

lldb::LanguageType TypeCategoryImpl::GetLanguageAtIndex ( size_t  idx)

Definition at line 77 of file TypeCategory.cpp.

References lldb::eLanguageTypeUnknown, and m_languages.

Referenced by GetDescription(), and IsApplicable().

◆ GetLastEnabledPosition()

uint32_t lldb_private::TypeCategoryImpl::GetLastEnabledPosition ( )
inlineprivate

Definition at line 344 of file TypeCategory.h.

◆ GetName()

const char* lldb_private::TypeCategoryImpl::GetName ( )
inline

Definition at line 302 of file TypeCategory.h.

Referenced by GetDescription().

◆ GetNumLanguages()

size_t TypeCategoryImpl::GetNumLanguages ( )

Definition at line 71 of file TypeCategory.cpp.

References m_languages.

Referenced by GetDescription(), and IsApplicable().

◆ GetRegexTypeFiltersContainer()

RegexFilterContainerSP lldb_private::TypeCategoryImpl::GetRegexTypeFiltersContainer ( )
inline

◆ GetRegexTypeFormatsContainer()

RegexFormatContainerSP lldb_private::TypeCategoryImpl::GetRegexTypeFormatsContainer ( )
inline

◆ GetRegexTypeSummariesContainer()

RegexSummaryContainerSP lldb_private::TypeCategoryImpl::GetRegexTypeSummariesContainer ( )
inline

◆ GetRegexTypeSyntheticsContainer()

RegexSynthContainerSP lldb_private::TypeCategoryImpl::GetRegexTypeSyntheticsContainer ( )
inline

◆ GetSummaryAtIndex()

TypeCategoryImpl::SummaryContainer::MapValueType TypeCategoryImpl::GetSummaryAtIndex ( size_t  index)

◆ GetSummaryContainer()

SummaryContainer& lldb_private::TypeCategoryImpl::GetSummaryContainer ( )
inline

Definition at line 224 of file TypeCategory.h.

◆ GetSummaryForType()

TypeCategoryImpl::SummaryContainer::MapValueType TypeCategoryImpl::GetSummaryForType ( lldb::TypeNameSpecifierImplSP  type_sp)

◆ GetSyntheticAtIndex()

TypeCategoryImpl::SynthContainer::MapValueType TypeCategoryImpl::GetSyntheticAtIndex ( size_t  index)

◆ GetSyntheticForType()

TypeCategoryImpl::SynthContainer::MapValueType TypeCategoryImpl::GetSyntheticForType ( lldb::TypeNameSpecifierImplSP  type_sp)

◆ GetSyntheticsContainer()

SynthContainer& lldb_private::TypeCategoryImpl::GetSyntheticsContainer ( )
inline

Definition at line 271 of file TypeCategory.h.

◆ GetTypeFiltersContainer()

FilterContainerSP lldb_private::TypeCategoryImpl::GetTypeFiltersContainer ( )
inline

◆ GetTypeFormatsContainer()

FormatContainerSP lldb_private::TypeCategoryImpl::GetTypeFormatsContainer ( )
inline

◆ GetTypeNameSpecifierForFilterAtIndex()

lldb::TypeNameSpecifierImplSP TypeCategoryImpl::GetTypeNameSpecifierForFilterAtIndex ( size_t  index)

◆ GetTypeNameSpecifierForFormatAtIndex()

lldb::TypeNameSpecifierImplSP TypeCategoryImpl::GetTypeNameSpecifierForFormatAtIndex ( size_t  index)

◆ GetTypeNameSpecifierForSummaryAtIndex()

lldb::TypeNameSpecifierImplSP TypeCategoryImpl::GetTypeNameSpecifierForSummaryAtIndex ( size_t  index)

◆ GetTypeNameSpecifierForSyntheticAtIndex()

lldb::TypeNameSpecifierImplSP TypeCategoryImpl::GetTypeNameSpecifierForSyntheticAtIndex ( size_t  index)

◆ GetTypeSummariesContainer()

SummaryContainerSP lldb_private::TypeCategoryImpl::GetTypeSummariesContainer ( )
inline

◆ GetTypeSyntheticsContainer()

SynthContainerSP lldb_private::TypeCategoryImpl::GetTypeSyntheticsContainer ( )
inline

◆ IsApplicable()

bool TypeCategoryImpl::IsApplicable ( lldb::LanguageType  lang)
private

Definition at line 62 of file TypeCategory.cpp.

References GetLanguageAtIndex(), and GetNumLanguages().

Referenced by Get().

◆ IsEnabled()

bool lldb_private::TypeCategoryImpl::IsEnabled ( ) const
inline

Definition at line 278 of file TypeCategory.h.

Referenced by AnyMatches(), Get(), and GetDescription().

◆ SetEnabledPosition()

void lldb_private::TypeCategoryImpl::SetEnabledPosition ( uint32_t  p)
inlineprivate

Definition at line 346 of file TypeCategory.h.

Friends And Related Function Documentation

◆ FormatManager

friend class FormatManager
friend

Definition at line 348 of file TypeCategory.h.

◆ FormattersContainer< ConstString, ScriptedSyntheticChildren >

Definition at line 361 of file TypeCategory.h.

◆ FormattersContainer< ConstString, TypeFilterImpl >

Definition at line 358 of file TypeCategory.h.

◆ FormattersContainer< ConstString, TypeFormatImpl >

Definition at line 352 of file TypeCategory.h.

◆ FormattersContainer< ConstString, TypeSummaryImpl >

Definition at line 355 of file TypeCategory.h.

◆ FormattersContainer< lldb::RegularExpressionSP, ScriptedSyntheticChildren >

friend class FormattersContainer< lldb::RegularExpressionSP, ScriptedSyntheticChildren >
friend

Definition at line 363 of file TypeCategory.h.

◆ FormattersContainer< lldb::RegularExpressionSP, TypeFilterImpl >

friend class FormattersContainer< lldb::RegularExpressionSP, TypeFilterImpl >
friend

Definition at line 359 of file TypeCategory.h.

◆ FormattersContainer< lldb::RegularExpressionSP, TypeFormatImpl >

friend class FormattersContainer< lldb::RegularExpressionSP, TypeFormatImpl >
friend

Definition at line 353 of file TypeCategory.h.

◆ FormattersContainer< lldb::RegularExpressionSP, TypeSummaryImpl >

friend class FormattersContainer< lldb::RegularExpressionSP, TypeSummaryImpl >
friend

Definition at line 356 of file TypeCategory.h.

◆ LanguageCategory

friend class LanguageCategory
friend

Definition at line 349 of file TypeCategory.h.

◆ TypeCategoryMap

friend class TypeCategoryMap
friend

Definition at line 350 of file TypeCategory.h.

Member Data Documentation

◆ ALL_ITEM_TYPES

const uint16_t lldb_private::TypeCategoryImpl::ALL_ITEM_TYPES = UINT16_MAX
static

Definition at line 74 of file TypeCategory.h.

◆ m_change_listener

IFormatChangeListener* lldb_private::TypeCategoryImpl::m_change_listener
private

Definition at line 328 of file TypeCategory.h.

Referenced by Enable().

◆ m_enabled

bool lldb_private::TypeCategoryImpl::m_enabled
private

Definition at line 326 of file TypeCategory.h.

Referenced by Enable().

◆ m_enabled_position

uint32_t lldb_private::TypeCategoryImpl::m_enabled_position
private

Definition at line 336 of file TypeCategory.h.

Referenced by Enable().

◆ m_filter_cont

FilterContainer lldb_private::TypeCategoryImpl::m_filter_cont
private

Definition at line 323 of file TypeCategory.h.

◆ m_format_cont

FormatContainer lldb_private::TypeCategoryImpl::m_format_cont
private

Definition at line 321 of file TypeCategory.h.

◆ m_languages

std::vector<lldb::LanguageType> lldb_private::TypeCategoryImpl::m_languages
private

Definition at line 334 of file TypeCategory.h.

Referenced by AddLanguage(), GetLanguageAtIndex(), and GetNumLanguages().

◆ m_mutex

std::recursive_mutex lldb_private::TypeCategoryImpl::m_mutex
private

Definition at line 330 of file TypeCategory.h.

Referenced by Enable().

◆ m_name

ConstString lldb_private::TypeCategoryImpl::m_name
private

Definition at line 332 of file TypeCategory.h.

Referenced by AnyMatches().

◆ m_summary_cont

SummaryContainer lldb_private::TypeCategoryImpl::m_summary_cont
private

Definition at line 322 of file TypeCategory.h.

◆ m_synth_cont

SynthContainer lldb_private::TypeCategoryImpl::m_synth_cont
private

Definition at line 324 of file TypeCategory.h.


The documentation for this class was generated from the following files: