summaryrefslogtreecommitdiffstats
path: root/include/lldb/DataFormatters/DataVisualization.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/lldb/DataFormatters/DataVisualization.h')
-rw-r--r--include/lldb/DataFormatters/DataVisualization.h174
1 files changed, 174 insertions, 0 deletions
diff --git a/include/lldb/DataFormatters/DataVisualization.h b/include/lldb/DataFormatters/DataVisualization.h
new file mode 100644
index 0000000..499e0fe
--- /dev/null
+++ b/include/lldb/DataFormatters/DataVisualization.h
@@ -0,0 +1,174 @@
+//===-- 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/DataFormatters/FormatClasses.h"
+#include "lldb/DataFormatters/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 size_t
+ GetCount ();
+
+ static lldb::TypeNameSpecifierImplSP
+ GetTypeNameSpecifierForFormatAtIndex (size_t);
+
+ static lldb::TypeFormatImplSP
+ GetFormatAtIndex (size_t);
+ };
+
+ static lldb::TypeSummaryImplSP
+ GetSummaryFormat(ValueObject& valobj,
+ lldb::DynamicValueType use_dynamic);
+
+ static lldb::TypeSummaryImplSP
+ GetSummaryForType (lldb::TypeNameSpecifierImplSP type_sp);
+
+#ifndef LLDB_DISABLE_PYTHON
+ static lldb::SyntheticChildrenSP
+ GetSyntheticChildrenForType (lldb::TypeNameSpecifierImplSP type_sp);
+#endif
+
+ static lldb::TypeFilterImplSP
+ GetFilterForType (lldb::TypeNameSpecifierImplSP type_sp);
+
+#ifndef LLDB_DISABLE_PYTHON
+ static lldb::ScriptedSyntheticChildrenSP
+ GetSyntheticForType (lldb::TypeNameSpecifierImplSP type_sp);
+#endif
+
+#ifndef LLDB_DISABLE_PYTHON
+ static lldb::SyntheticChildrenSP
+ GetSyntheticChildren(ValueObject& valobj,
+ lldb::DynamicValueType use_dynamic);
+#endif
+
+ 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,
+ TypeCategoryMap::Position = TypeCategoryMap::Default);
+
+ static void
+ Disable (const ConstString& category);
+
+ static void
+ Enable (const lldb::TypeCategoryImplSP& category,
+ TypeCategoryMap::Position = TypeCategoryMap::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 (size_t);
+ };
+};
+
+
+} // namespace lldb_private
+
+#endif // lldb_DataVisualization_h_
OpenPOWER on IntegriCloud