| //===-- DataVisualization.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_DataVisualization_h_ |
| #define lldb_DataVisualization_h_ |
| |
| // C Includes |
| // C++ Includes |
| |
| // Other libraries and framework includes |
| // Project includes |
| #include "lldb/Core/ConstString.h" |
| #include "lldb/Core/FormatClasses.h" |
| #include "lldb/Core/FormatManager.h" |
| |
| namespace lldb_private { |
| |
| // this class is the high-level front-end of LLDB Data Visualization |
| // code in FormatManager.h/cpp is the low-level implementation of this feature |
| // clients should refer to this class as the entry-point into the data formatters |
| // unless they have a good reason to bypass this and go to the backend |
| class DataVisualization |
| { |
| public: |
| |
| // use this call to force the FM to consider itself updated even when there is no apparent reason for that |
| static void |
| ForceUpdate(); |
| |
| static uint32_t |
| GetCurrentRevision (); |
| |
| class ValueFormats |
| { |
| public: |
| static lldb::TypeFormatImplSP |
| GetFormat (ValueObject& valobj, lldb::DynamicValueType use_dynamic); |
| |
| static lldb::TypeFormatImplSP |
| GetFormat (const ConstString &type); |
| |
| static void |
| Add (const ConstString &type, const lldb::TypeFormatImplSP &entry); |
| |
| static bool |
| Delete (const ConstString &type); |
| |
| static void |
| Clear (); |
| |
| static void |
| LoopThrough (TypeFormatImpl::ValueCallback callback, void* callback_baton); |
| |
| static uint32_t |
| GetCount (); |
| |
| static lldb::TypeNameSpecifierImplSP |
| GetTypeNameSpecifierForFormatAtIndex (uint32_t); |
| |
| static lldb::TypeFormatImplSP |
| GetFormatAtIndex (uint32_t); |
| }; |
| |
| static lldb::TypeSummaryImplSP |
| GetSummaryFormat(ValueObject& valobj, |
| lldb::DynamicValueType use_dynamic); |
| |
| static lldb::SyntheticChildrenSP |
| GetSyntheticChildren(ValueObject& valobj, |
| lldb::DynamicValueType use_dynamic); |
| |
| static bool |
| AnyMatches(ConstString type_name, |
| TypeCategoryImpl::FormatCategoryItems items = TypeCategoryImpl::ALL_ITEM_TYPES, |
| bool only_enabled = true, |
| const char** matching_category = NULL, |
| TypeCategoryImpl::FormatCategoryItems* matching_type = NULL); |
| |
| class NamedSummaryFormats |
| { |
| public: |
| static bool |
| GetSummaryFormat (const ConstString &type, lldb::TypeSummaryImplSP &entry); |
| |
| static void |
| Add (const ConstString &type, const lldb::TypeSummaryImplSP &entry); |
| |
| static bool |
| Delete (const ConstString &type); |
| |
| static void |
| Clear (); |
| |
| static void |
| LoopThrough (TypeSummaryImpl::SummaryCallback callback, void* callback_baton); |
| |
| static uint32_t |
| GetCount (); |
| }; |
| |
| class Categories |
| { |
| public: |
| |
| static bool |
| GetCategory (const ConstString &category, |
| lldb::TypeCategoryImplSP &entry, |
| bool allow_create = true); |
| |
| static void |
| Add (const ConstString &category); |
| |
| static bool |
| Delete (const ConstString &category); |
| |
| static void |
| Clear (); |
| |
| static void |
| Clear (const ConstString &category); |
| |
| static void |
| Enable (const ConstString& category, |
| CategoryMap::Position = CategoryMap::Default); |
| |
| static void |
| Disable (const ConstString& category); |
| |
| static void |
| Enable (const lldb::TypeCategoryImplSP& category, |
| CategoryMap::Position = CategoryMap::Default); |
| |
| static void |
| Disable (const lldb::TypeCategoryImplSP& category); |
| |
| static void |
| LoopThrough (FormatManager::CategoryCallback callback, void* callback_baton); |
| |
| static uint32_t |
| GetCount (); |
| |
| static lldb::TypeCategoryImplSP |
| GetCategoryAtIndex (uint32_t); |
| }; |
| }; |
| |
| |
| } // namespace lldb_private |
| |
| #endif // lldb_DataVisualization_h_ |