1*dda28197Spatrick //===-- FormatClasses.cpp -------------------------------------------------===//
2061da546Spatrick //
3061da546Spatrick // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4061da546Spatrick // See https://llvm.org/LICENSE.txt for license information.
5061da546Spatrick // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6061da546Spatrick //
7061da546Spatrick //===----------------------------------------------------------------------===//
8061da546Spatrick
9061da546Spatrick #include "lldb/DataFormatters/FormatClasses.h"
10061da546Spatrick
11061da546Spatrick #include "lldb/DataFormatters/FormatManager.h"
12061da546Spatrick
13061da546Spatrick
14061da546Spatrick
15061da546Spatrick
16061da546Spatrick
17061da546Spatrick using namespace lldb;
18061da546Spatrick using namespace lldb_private;
19061da546Spatrick
FormattersMatchData(ValueObject & valobj,lldb::DynamicValueType use_dynamic)20061da546Spatrick FormattersMatchData::FormattersMatchData(ValueObject &valobj,
21061da546Spatrick lldb::DynamicValueType use_dynamic)
22061da546Spatrick : m_valobj(valobj), m_dynamic_value_type(use_dynamic),
23061da546Spatrick m_formatters_match_vector({}, false), m_type_for_cache(),
24061da546Spatrick m_candidate_languages() {
25061da546Spatrick m_type_for_cache = FormatManager::GetTypeForCache(valobj, use_dynamic);
26061da546Spatrick m_candidate_languages =
27061da546Spatrick FormatManager::GetCandidateLanguages(valobj.GetObjectRuntimeLanguage());
28061da546Spatrick }
29061da546Spatrick
GetMatchesVector()30061da546Spatrick FormattersMatchVector FormattersMatchData::GetMatchesVector() {
31061da546Spatrick if (!m_formatters_match_vector.second) {
32061da546Spatrick m_formatters_match_vector.second = true;
33061da546Spatrick m_formatters_match_vector.first =
34061da546Spatrick FormatManager::GetPossibleMatches(m_valobj, m_dynamic_value_type);
35061da546Spatrick }
36061da546Spatrick return m_formatters_match_vector.first;
37061da546Spatrick }
38061da546Spatrick
GetTypeForCache()39061da546Spatrick ConstString FormattersMatchData::GetTypeForCache() { return m_type_for_cache; }
40061da546Spatrick
GetCandidateLanguages()41061da546Spatrick CandidateLanguagesVector FormattersMatchData::GetCandidateLanguages() {
42061da546Spatrick return m_candidate_languages;
43061da546Spatrick }
44061da546Spatrick
GetValueObject()45061da546Spatrick ValueObject &FormattersMatchData::GetValueObject() { return m_valobj; }
46061da546Spatrick
GetDynamicValueType()47061da546Spatrick lldb::DynamicValueType FormattersMatchData::GetDynamicValueType() {
48061da546Spatrick return m_dynamic_value_type;
49061da546Spatrick }
50