diff options
Diffstat (limited to 'include/lldb/DataFormatters/TypeCategoryMap.h')
-rw-r--r-- | include/lldb/DataFormatters/TypeCategoryMap.h | 224 |
1 files changed, 93 insertions, 131 deletions
diff --git a/include/lldb/DataFormatters/TypeCategoryMap.h b/include/lldb/DataFormatters/TypeCategoryMap.h index 2cc589809a7c..f767c985ff34 100644 --- a/include/lldb/DataFormatters/TypeCategoryMap.h +++ b/include/lldb/DataFormatters/TypeCategoryMap.h @@ -19,145 +19,107 @@ // Other libraries and framework includes // Project includes -#include "lldb/lldb-public.h" #include "lldb/lldb-enumerations.h" +#include "lldb/lldb-public.h" #include "lldb/DataFormatters/FormattersContainer.h" #include "lldb/DataFormatters/TypeCategory.h" namespace lldb_private { - class TypeCategoryMap - { - private: - typedef ConstString KeyType; - typedef TypeCategoryImpl ValueType; - typedef ValueType::SharedPointer ValueSP; - typedef std::list<lldb::TypeCategoryImplSP> ActiveCategoriesList; - typedef ActiveCategoriesList::iterator ActiveCategoriesIterator; - - public: - typedef std::map<KeyType, ValueSP> MapType; - typedef MapType::iterator MapIterator; - typedef std::function<bool(const ValueSP&)> ForEachCallback; - - typedef uint32_t Position; - - static const Position First = 0; - static const Position Default = 1; - static const Position Last = UINT32_MAX; - - TypeCategoryMap (IFormatChangeListener* lst); - - void - Add (KeyType name, - const ValueSP& entry); - - bool - Delete (KeyType name); - - bool - Enable (KeyType category_name, - Position pos = Default); - - bool - Disable (KeyType category_name); - - bool - Enable (ValueSP category, - Position pos = Default); - - bool - Disable (ValueSP category); - - void - EnableAllCategories (); - - void - DisableAllCategories (); - - void - Clear (); - - bool - Get (KeyType name, - ValueSP& entry); - - bool - Get (uint32_t pos, - ValueSP& entry); - - void - ForEach (ForEachCallback callback); - - lldb::TypeCategoryImplSP - GetAtIndex (uint32_t); - - bool - AnyMatches(ConstString type_name, - TypeCategoryImpl::FormatCategoryItems items = TypeCategoryImpl::ALL_ITEM_TYPES, - bool only_enabled = true, - const char** matching_category = nullptr, - TypeCategoryImpl::FormatCategoryItems* matching_type = nullptr); - - uint32_t - GetCount () - { - return m_map.size(); - } - - lldb::TypeFormatImplSP - GetFormat (FormattersMatchData& match_data); - - lldb::TypeSummaryImplSP - GetSummaryFormat (FormattersMatchData& match_data); - +class TypeCategoryMap { +private: + typedef ConstString KeyType; + typedef TypeCategoryImpl ValueType; + typedef ValueType::SharedPointer ValueSP; + typedef std::list<lldb::TypeCategoryImplSP> ActiveCategoriesList; + typedef ActiveCategoriesList::iterator ActiveCategoriesIterator; + +public: + typedef std::map<KeyType, ValueSP> MapType; + typedef MapType::iterator MapIterator; + typedef std::function<bool(const ValueSP &)> ForEachCallback; + + typedef uint32_t Position; + + static const Position First = 0; + static const Position Default = 1; + static const Position Last = UINT32_MAX; + + TypeCategoryMap(IFormatChangeListener *lst); + + void Add(KeyType name, const ValueSP &entry); + + bool Delete(KeyType name); + + bool Enable(KeyType category_name, Position pos = Default); + + bool Disable(KeyType category_name); + + bool Enable(ValueSP category, Position pos = Default); + + bool Disable(ValueSP category); + + void EnableAllCategories(); + + void DisableAllCategories(); + + void Clear(); + + bool Get(KeyType name, ValueSP &entry); + + bool Get(uint32_t pos, ValueSP &entry); + + void ForEach(ForEachCallback callback); + + lldb::TypeCategoryImplSP GetAtIndex(uint32_t); + + bool + AnyMatches(ConstString type_name, + TypeCategoryImpl::FormatCategoryItems items = + TypeCategoryImpl::ALL_ITEM_TYPES, + bool only_enabled = true, const char **matching_category = nullptr, + TypeCategoryImpl::FormatCategoryItems *matching_type = nullptr); + + uint32_t GetCount() { return m_map.size(); } + + lldb::TypeFormatImplSP GetFormat(FormattersMatchData &match_data); + + lldb::TypeSummaryImplSP GetSummaryFormat(FormattersMatchData &match_data); + #ifndef LLDB_DISABLE_PYTHON - lldb::SyntheticChildrenSP - GetSyntheticChildren (FormattersMatchData& match_data); + lldb::SyntheticChildrenSP + GetSyntheticChildren(FormattersMatchData &match_data); #endif - - lldb::TypeValidatorImplSP - GetValidator(FormattersMatchData& match_data); - - private: - class delete_matching_categories - { - lldb::TypeCategoryImplSP ptr; - public: - delete_matching_categories(lldb::TypeCategoryImplSP p) : ptr(p) - {} - - bool operator()(const lldb::TypeCategoryImplSP& other) - { - return ptr.get() == other.get(); - } - }; - - std::recursive_mutex m_map_mutex; - IFormatChangeListener* listener; - - MapType m_map; - ActiveCategoriesList m_active_categories; - - MapType& map () - { - return m_map; - } - - ActiveCategoriesList& active_list () - { - return m_active_categories; - } - - std::recursive_mutex & - mutex() - { - return m_map_mutex; - } - - friend class FormattersContainer<KeyType, ValueType>; - friend class FormatManager; - }; + + lldb::TypeValidatorImplSP GetValidator(FormattersMatchData &match_data); + +private: + class delete_matching_categories { + lldb::TypeCategoryImplSP ptr; + + public: + delete_matching_categories(lldb::TypeCategoryImplSP p) : ptr(p) {} + + bool operator()(const lldb::TypeCategoryImplSP &other) { + return ptr.get() == other.get(); + } + }; + + std::recursive_mutex m_map_mutex; + IFormatChangeListener *listener; + + MapType m_map; + ActiveCategoriesList m_active_categories; + + MapType &map() { return m_map; } + + ActiveCategoriesList &active_list() { return m_active_categories; } + + std::recursive_mutex &mutex() { return m_map_mutex; } + + friend class FormattersContainer<KeyType, ValueType>; + friend class FormatManager; +}; } // namespace lldb_private #endif // lldb_TypeCategoryMap_h_ |