1 //===-- DataVisualization.cpp ---------------------------------------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 #include "lldb/DataFormatters/DataVisualization.h"
14 // Other libraries and framework includes
17 #include "lldb/Core/Debugger.h"
20 using namespace lldb_private;
25 static FormatManager g_format_manager;
26 return g_format_manager;
30 DataVisualization::ForceUpdate ()
32 GetFormatManager().Changed();
36 DataVisualization::GetCurrentRevision ()
38 return GetFormatManager().GetCurrentRevision();
42 DataVisualization::ShouldPrintAsOneLiner (ValueObject& valobj)
44 return GetFormatManager().ShouldPrintAsOneLiner(valobj);
47 lldb::TypeFormatImplSP
48 DataVisualization::GetFormat (ValueObject& valobj, lldb::DynamicValueType use_dynamic)
50 return GetFormatManager().GetFormat(valobj, use_dynamic);
53 lldb::TypeFormatImplSP
54 DataVisualization::GetFormatForType (lldb::TypeNameSpecifierImplSP type_sp)
56 return GetFormatManager().GetFormatForType(type_sp);
59 lldb::TypeSummaryImplSP
60 DataVisualization::GetSummaryFormat (ValueObject& valobj, lldb::DynamicValueType use_dynamic)
62 return GetFormatManager().GetSummaryFormat(valobj, use_dynamic);
65 lldb::TypeSummaryImplSP
66 DataVisualization::GetSummaryForType (lldb::TypeNameSpecifierImplSP type_sp)
68 return GetFormatManager().GetSummaryForType(type_sp);
71 #ifndef LLDB_DISABLE_PYTHON
72 lldb::SyntheticChildrenSP
73 DataVisualization::GetSyntheticChildren (ValueObject& valobj,
74 lldb::DynamicValueType use_dynamic)
76 return GetFormatManager().GetSyntheticChildren(valobj, use_dynamic);
80 #ifndef LLDB_DISABLE_PYTHON
81 lldb::SyntheticChildrenSP
82 DataVisualization::GetSyntheticChildrenForType (lldb::TypeNameSpecifierImplSP type_sp)
84 return GetFormatManager().GetSyntheticChildrenForType(type_sp);
88 lldb::TypeFilterImplSP
89 DataVisualization::GetFilterForType (lldb::TypeNameSpecifierImplSP type_sp)
91 return GetFormatManager().GetFilterForType(type_sp);
94 #ifndef LLDB_DISABLE_PYTHON
95 lldb::ScriptedSyntheticChildrenSP
96 DataVisualization::GetSyntheticForType (lldb::TypeNameSpecifierImplSP type_sp)
98 return GetFormatManager().GetSyntheticForType(type_sp);
102 lldb::TypeValidatorImplSP
103 DataVisualization::GetValidator (ValueObject& valobj, lldb::DynamicValueType use_dynamic)
105 return GetFormatManager().GetValidator(valobj, use_dynamic);
108 lldb::TypeValidatorImplSP
109 DataVisualization::GetValidatorForType (lldb::TypeNameSpecifierImplSP type_sp)
111 return GetFormatManager().GetValidatorForType(type_sp);
115 DataVisualization::AnyMatches (ConstString type_name,
116 TypeCategoryImpl::FormatCategoryItems items,
118 const char** matching_category,
119 TypeCategoryImpl::FormatCategoryItems* matching_type)
121 return GetFormatManager().AnyMatches(type_name,
129 DataVisualization::Categories::GetCategory (const ConstString &category, lldb::TypeCategoryImplSP &entry,
132 entry = GetFormatManager().GetCategory(category, allow_create);
133 return (entry.get() != NULL);
137 DataVisualization::Categories::Add (const ConstString &category)
139 GetFormatManager().GetCategory(category);
143 DataVisualization::Categories::Delete (const ConstString &category)
145 GetFormatManager().DisableCategory(category);
146 return GetFormatManager().DeleteCategory(category);
150 DataVisualization::Categories::Clear ()
152 GetFormatManager().ClearCategories();
156 DataVisualization::Categories::Clear (const ConstString &category)
158 GetFormatManager().GetCategory(category)->Clear(eFormatCategoryItemSummary | eFormatCategoryItemRegexSummary);
162 DataVisualization::Categories::Enable (const ConstString& category,
163 TypeCategoryMap::Position pos)
165 if (GetFormatManager().GetCategory(category)->IsEnabled())
166 GetFormatManager().DisableCategory(category);
167 GetFormatManager().EnableCategory(category, pos);
171 DataVisualization::Categories::Disable (const ConstString& category)
173 if (GetFormatManager().GetCategory(category)->IsEnabled() == true)
174 GetFormatManager().DisableCategory(category);
178 DataVisualization::Categories::Enable (const lldb::TypeCategoryImplSP& category,
179 TypeCategoryMap::Position pos)
183 if (category->IsEnabled())
184 GetFormatManager().DisableCategory(category);
185 GetFormatManager().EnableCategory(category, pos);
190 DataVisualization::Categories::Disable (const lldb::TypeCategoryImplSP& category)
192 if (category.get() && category->IsEnabled() == true)
193 GetFormatManager().DisableCategory(category);
197 DataVisualization::Categories::EnableStar ()
199 GetFormatManager().EnableAllCategories ();
203 DataVisualization::Categories::DisableStar ()
205 GetFormatManager().DisableAllCategories();
209 DataVisualization::Categories::LoopThrough (FormatManager::CategoryCallback callback, void* callback_baton)
211 GetFormatManager().LoopThroughCategories(callback, callback_baton);
215 DataVisualization::Categories::GetCount ()
217 return GetFormatManager().GetCategoriesCount();
220 lldb::TypeCategoryImplSP
221 DataVisualization::Categories::GetCategoryAtIndex (size_t index)
223 return GetFormatManager().GetCategoryAtIndex(index);
227 DataVisualization::NamedSummaryFormats::GetSummaryFormat (const ConstString &type, lldb::TypeSummaryImplSP &entry)
229 return GetFormatManager().GetNamedSummaryContainer().Get(type,entry);
233 DataVisualization::NamedSummaryFormats::Add (const ConstString &type, const lldb::TypeSummaryImplSP &entry)
235 GetFormatManager().GetNamedSummaryContainer().Add(FormatManager::GetValidTypeName(type),entry);
239 DataVisualization::NamedSummaryFormats::Delete (const ConstString &type)
241 return GetFormatManager().GetNamedSummaryContainer().Delete(type);
245 DataVisualization::NamedSummaryFormats::Clear ()
247 GetFormatManager().GetNamedSummaryContainer().Clear();
251 DataVisualization::NamedSummaryFormats::LoopThrough (TypeSummaryImpl::SummaryCallback callback, void* callback_baton)
253 GetFormatManager().GetNamedSummaryContainer().LoopThrough(callback, callback_baton);
257 DataVisualization::NamedSummaryFormats::GetCount ()
259 return GetFormatManager().GetNamedSummaryContainer().GetCount();