DataVisualization.cpp revision 258054
155714Skris//===-- DataVisualization.cpp ---------------------------------------*- C++ -*-===// 255714Skris// 355714Skris// The LLVM Compiler Infrastructure 455714Skris// 555714Skris// This file is distributed under the University of Illinois Open Source 655714Skris// License. See LICENSE.TXT for details. 755714Skris// 8280304Sjkim//===----------------------------------------------------------------------===// 955714Skris 1055714Skris#include "lldb/lldb-python.h" 1155714Skris 1255714Skris#include "lldb/DataFormatters/DataVisualization.h" 1355714Skris 1455714Skris// C Includes 15280304Sjkim// C++ Includes 1655714Skris// Other libraries and framework includes 1755714Skris// Project includes 1855714Skris 1955714Skris#include "lldb/Core/Debugger.h" 2055714Skris 2155714Skrisusing namespace lldb; 22280304Sjkimusing namespace lldb_private; 2355714Skris 2455714Skrisstatic FormatManager& 2555714SkrisGetFormatManager() 2655714Skris{ 2755714Skris static FormatManager g_format_manager; 2855714Skris return g_format_manager; 2955714Skris} 3055714Skris 3155714Skrisvoid 3255714SkrisDataVisualization::ForceUpdate () 3355714Skris{ 3455714Skris GetFormatManager().Changed(); 3555714Skris} 3655714Skris 37280304Sjkimuint32_t 3855714SkrisDataVisualization::GetCurrentRevision () 3955714Skris{ 40280304Sjkim return GetFormatManager().GetCurrentRevision(); 4155714Skris} 4255714Skris 4355714Skrisbool 4455714SkrisDataVisualization::ShouldPrintAsOneLiner (ValueObject& valobj) 4555714Skris{ 4655714Skris return GetFormatManager().ShouldPrintAsOneLiner(valobj); 4755714Skris} 4855714Skris 4955714Skrislldb::TypeFormatImplSP 5055714SkrisDataVisualization::GetFormat (ValueObject& valobj, lldb::DynamicValueType use_dynamic) 5155714Skris{ 52280304Sjkim return GetFormatManager().GetFormat(valobj, use_dynamic); 5355714Skris} 5455714Skris 5555714Skrislldb::TypeFormatImplSP 5655714SkrisDataVisualization::GetFormatForType (lldb::TypeNameSpecifierImplSP type_sp) 5755714Skris{ 5855714Skris return GetFormatManager().GetFormatForType(type_sp); 5955714Skris} 6055714Skris 6155714Skrislldb::TypeSummaryImplSP 6255714SkrisDataVisualization::GetSummaryFormat (ValueObject& valobj, lldb::DynamicValueType use_dynamic) 6355714Skris{ 64238405Sjkim return GetFormatManager().GetSummaryFormat(valobj, use_dynamic); 6555714Skris} 6655714Skris 6755714Skrislldb::TypeSummaryImplSP 6855714SkrisDataVisualization::GetSummaryForType (lldb::TypeNameSpecifierImplSP type_sp) 6955714Skris{ 7059191Skris return GetFormatManager().GetSummaryForType(type_sp); 71280304Sjkim} 72280304Sjkim 73280304Sjkim#ifndef LLDB_DISABLE_PYTHON 74280304Sjkimlldb::SyntheticChildrenSP 75280304SjkimDataVisualization::GetSyntheticChildren (ValueObject& valobj, 7655714Skris lldb::DynamicValueType use_dynamic) 77280304Sjkim{ 78280304Sjkim return GetFormatManager().GetSyntheticChildren(valobj, use_dynamic); 79280304Sjkim} 80280304Sjkim#endif 81280304Sjkim 8255714Skris#ifndef LLDB_DISABLE_PYTHON 83280304Sjkimlldb::SyntheticChildrenSP 8455714SkrisDataVisualization::GetSyntheticChildrenForType (lldb::TypeNameSpecifierImplSP type_sp) 85280304Sjkim{ 86280304Sjkim return GetFormatManager().GetSyntheticChildrenForType(type_sp); 87280304Sjkim} 88280304Sjkim#endif 89280304Sjkim 9055714Skrislldb::TypeFilterImplSP 91280304SjkimDataVisualization::GetFilterForType (lldb::TypeNameSpecifierImplSP type_sp) 92280304Sjkim{ 9355714Skris return GetFormatManager().GetFilterForType(type_sp); 94280304Sjkim} 95280304Sjkim 96280304Sjkim#ifndef LLDB_DISABLE_PYTHON 97280304Sjkimlldb::ScriptedSyntheticChildrenSP 98280304SjkimDataVisualization::GetSyntheticForType (lldb::TypeNameSpecifierImplSP type_sp) 99280304Sjkim{ 100280304Sjkim return GetFormatManager().GetSyntheticForType(type_sp); 10155714Skris} 102280304Sjkim#endif 103280304Sjkim 104280304Sjkimbool 105280304SjkimDataVisualization::AnyMatches (ConstString type_name, 106280304Sjkim TypeCategoryImpl::FormatCategoryItems items, 107280304Sjkim bool only_enabled, 108280304Sjkim const char** matching_category, 109280304Sjkim TypeCategoryImpl::FormatCategoryItems* matching_type) 110280304Sjkim{ 11155714Skris return GetFormatManager().AnyMatches(type_name, 11255714Skris items, 113280304Sjkim only_enabled, 114280304Sjkim matching_category, 115280304Sjkim matching_type); 116280304Sjkim} 117280304Sjkim 11855714Skrisbool 119160814SsimonDataVisualization::Categories::GetCategory (const ConstString &category, lldb::TypeCategoryImplSP &entry, 120280304Sjkim bool allow_create) 121280304Sjkim{ 122280304Sjkim entry = GetFormatManager().GetCategory(category, allow_create); 123160814Ssimon return (entry.get() != NULL); 124280304Sjkim} 125280304Sjkim 126280304Sjkimvoid 127280304SjkimDataVisualization::Categories::Add (const ConstString &category) 128280304Sjkim{ 129280304Sjkim GetFormatManager().GetCategory(category); 130280304Sjkim} 131280304Sjkim 132280304Sjkimbool 133280304SjkimDataVisualization::Categories::Delete (const ConstString &category) 134280304Sjkim{ 135280304Sjkim GetFormatManager().DisableCategory(category); 136280304Sjkim return GetFormatManager().DeleteCategory(category); 137160814Ssimon} 138280304Sjkim 139280304Sjkimvoid 140280304SjkimDataVisualization::Categories::Clear () 141280304Sjkim{ 142160814Ssimon GetFormatManager().ClearCategories(); 143160814Ssimon} 144280304Sjkim 145280304Sjkimvoid 146280304SjkimDataVisualization::Categories::Clear (const ConstString &category) 147280304Sjkim{ 148280304Sjkim GetFormatManager().GetCategory(category)->Clear(eFormatCategoryItemSummary | eFormatCategoryItemRegexSummary); 149280304Sjkim} 150160814Ssimon 151280304Sjkimvoid 152280304SjkimDataVisualization::Categories::Enable (const ConstString& category, 153160814Ssimon TypeCategoryMap::Position pos) 154280304Sjkim{ 155280304Sjkim if (GetFormatManager().GetCategory(category)->IsEnabled()) 156280304Sjkim GetFormatManager().DisableCategory(category); 157160814Ssimon GetFormatManager().EnableCategory(category, pos); 158280304Sjkim} 159280304Sjkim 16059191Skrisvoid 16159191SkrisDataVisualization::Categories::Disable (const ConstString& category) 16259191Skris{ 16359191Skris if (GetFormatManager().GetCategory(category)->IsEnabled() == true) 164280304Sjkim GetFormatManager().DisableCategory(category); 16559191Skris} 16659191Skris 16759191Skrisvoid 16859191SkrisDataVisualization::Categories::Enable (const lldb::TypeCategoryImplSP& category, 16959191Skris TypeCategoryMap::Position pos) 170280304Sjkim{ 171280304Sjkim if (category.get()) 172280304Sjkim { 173280304Sjkim if (category->IsEnabled()) 174280304Sjkim GetFormatManager().DisableCategory(category); 175280304Sjkim GetFormatManager().EnableCategory(category, pos); 176280304Sjkim } 177280304Sjkim} 17859191Skris 17959191Skrisvoid 18059191SkrisDataVisualization::Categories::Disable (const lldb::TypeCategoryImplSP& category) 18159191Skris{ 182280304Sjkim if (category.get() && category->IsEnabled() == true) 18359191Skris GetFormatManager().DisableCategory(category); 184280304Sjkim} 18559191Skris 18659191Skrisvoid 187280304SjkimDataVisualization::Categories::LoopThrough (FormatManager::CategoryCallback callback, void* callback_baton) 18859191Skris{ 18959191Skris GetFormatManager().LoopThroughCategories(callback, callback_baton); 19059191Skris} 191280304Sjkim 192280304Sjkimuint32_t 193280304SjkimDataVisualization::Categories::GetCount () 194280304Sjkim{ 195280304Sjkim return GetFormatManager().GetCategoriesCount(); 196142425Snectar} 197280304Sjkim 198280304Sjkimlldb::TypeCategoryImplSP 199280304SjkimDataVisualization::Categories::GetCategoryAtIndex (size_t index) 200280304Sjkim{ 201280304Sjkim return GetFormatManager().GetCategoryAtIndex(index); 202280304Sjkim} 203280304Sjkim 204280304Sjkimbool 205280304SjkimDataVisualization::NamedSummaryFormats::GetSummaryFormat (const ConstString &type, lldb::TypeSummaryImplSP &entry) 206280304Sjkim{ 207280304Sjkim return GetFormatManager().GetNamedSummaryNavigator().Get(type,entry); 208280304Sjkim} 209280304Sjkim 210280304Sjkimvoid 211280304SjkimDataVisualization::NamedSummaryFormats::Add (const ConstString &type, const lldb::TypeSummaryImplSP &entry) 212280304Sjkim{ 213280304Sjkim GetFormatManager().GetNamedSummaryNavigator().Add(FormatManager::GetValidTypeName(type),entry); 214280304Sjkim} 215280304Sjkim 216160814Ssimonbool 21759191SkrisDataVisualization::NamedSummaryFormats::Delete (const ConstString &type) 218280304Sjkim{ 219280304Sjkim return GetFormatManager().GetNamedSummaryNavigator().Delete(type); 22059191Skris} 22159191Skris 22259191Skrisvoid 22359191SkrisDataVisualization::NamedSummaryFormats::Clear () 224280304Sjkim{ 22559191Skris GetFormatManager().GetNamedSummaryNavigator().Clear(); 226280304Sjkim} 227280304Sjkim 228280304Sjkimvoid 229280304SjkimDataVisualization::NamedSummaryFormats::LoopThrough (TypeSummaryImpl::SummaryCallback callback, void* callback_baton) 23059191Skris{ 231280304Sjkim GetFormatManager().GetNamedSummaryNavigator().LoopThrough(callback, callback_baton); 232280304Sjkim} 233280304Sjkim 234280304Sjkimuint32_t 235280304SjkimDataVisualization::NamedSummaryFormats::GetCount () 236280304Sjkim{ 237280304Sjkim return GetFormatManager().GetNamedSummaryNavigator().GetCount(); 238280304Sjkim} 239280304Sjkim