Files
clang-r547379/include/lldb/DataFormatters/DataVisualization.h
Ryan Prichard 6024e5c395 Update prebuilt Clang to r547379 (20.0.0).
clang 20.0.0 (based on r547379) from build 12806354.

Bug: http://b/379133546
Test: N/A
Change-Id: I2eb8938af55d809de674be63cb30cf27e801862b

Upstream-Commit: ad834e67b1105d15ef907f6255d4c96e8e733f57
2025-11-26 14:59:46 -05:00

125 lines
4.0 KiB
C++

//===-- DataVisualization.h -------------------------------------*- C++ -*-===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
#ifndef LLDB_DATAFORMATTERS_DATAVISUALIZATION_H
#define LLDB_DATAFORMATTERS_DATAVISUALIZATION_H
#include "lldb/DataFormatters/FormatClasses.h"
#include "lldb/DataFormatters/FormatManager.h"
#include "lldb/Utility/ConstString.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();
static bool ShouldPrintAsOneLiner(ValueObject &valobj);
static lldb::TypeFormatImplSP GetFormat(ValueObject &valobj,
lldb::DynamicValueType use_dynamic);
static lldb::TypeFormatImplSP
GetFormatForType(lldb::TypeNameSpecifierImplSP type_sp);
static lldb::TypeSummaryImplSP
GetSummaryFormat(ValueObject &valobj, lldb::DynamicValueType use_dynamic);
static lldb::TypeSummaryImplSP
GetSummaryForType(lldb::TypeNameSpecifierImplSP type_sp);
static lldb::TypeFilterImplSP
GetFilterForType(lldb::TypeNameSpecifierImplSP type_sp);
static lldb::ScriptedSyntheticChildrenSP
GetSyntheticForType(lldb::TypeNameSpecifierImplSP type_sp);
static lldb::SyntheticChildrenSP
GetSyntheticChildren(ValueObject &valobj, lldb::DynamicValueType use_dynamic);
static bool
AnyMatches(const FormattersMatchCandidate &candidate_type,
TypeCategoryImpl::FormatCategoryItems items =
TypeCategoryImpl::ALL_ITEM_TYPES,
bool only_enabled = true, const char **matching_category = nullptr,
TypeCategoryImpl::FormatCategoryItems *matching_type = nullptr);
class NamedSummaryFormats {
public:
static bool GetSummaryFormat(ConstString type,
lldb::TypeSummaryImplSP &entry);
static void Add(ConstString type,
const lldb::TypeSummaryImplSP &entry);
static bool Delete(ConstString type);
static void Clear();
static void ForEach(std::function<bool(const TypeMatcher &,
const lldb::TypeSummaryImplSP &)>
callback);
static uint32_t GetCount();
};
class Categories {
public:
static bool GetCategory(ConstString category,
lldb::TypeCategoryImplSP &entry,
bool allow_create = true);
static bool GetCategory(lldb::LanguageType language,
lldb::TypeCategoryImplSP &entry);
static void Add(ConstString category);
static bool Delete(ConstString category);
static void Clear();
static void Clear(ConstString category);
static void Enable(ConstString category,
TypeCategoryMap::Position = TypeCategoryMap::Default);
static void Enable(lldb::LanguageType lang_type);
static void Disable(ConstString category);
static void Disable(lldb::LanguageType lang_type);
static void Enable(const lldb::TypeCategoryImplSP &category,
TypeCategoryMap::Position = TypeCategoryMap::Default);
static void Disable(const lldb::TypeCategoryImplSP &category);
static void EnableStar();
static void DisableStar();
static void ForEach(TypeCategoryMap::ForEachCallback callback);
static uint32_t GetCount();
static lldb::TypeCategoryImplSP GetCategoryAtIndex(size_t);
};
};
} // namespace lldb_private
#endif // LLDB_DATAFORMATTERS_DATAVISUALIZATION_H