1*80814287SRaphael Isemann //===-- FormatClasses.cpp -------------------------------------------------===//
25548cb50SEnrico Granata //
32946cd70SChandler Carruth // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
42946cd70SChandler Carruth // See https://llvm.org/LICENSE.txt for license information.
52946cd70SChandler Carruth // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
65548cb50SEnrico Granata //
75548cb50SEnrico Granata //===----------------------------------------------------------------------===//
85548cb50SEnrico Granata 
9de61cecdSEnrico Granata #include "lldb/DataFormatters/FormatClasses.h"
105548cb50SEnrico Granata 
118a9a8f39SEnrico Granata #include "lldb/DataFormatters/FormatManager.h"
128a9a8f39SEnrico Granata 
135548cb50SEnrico Granata 
145548cb50SEnrico Granata 
155548cb50SEnrico Granata 
165548cb50SEnrico Granata 
175548cb50SEnrico Granata using namespace lldb;
185548cb50SEnrico Granata using namespace lldb_private;
195548cb50SEnrico Granata 
FormattersMatchData(ValueObject & valobj,lldb::DynamicValueType use_dynamic)20b9c1b51eSKate Stone FormattersMatchData::FormattersMatchData(ValueObject &valobj,
21b9c1b51eSKate Stone                                          lldb::DynamicValueType use_dynamic)
22b9c1b51eSKate Stone     : m_valobj(valobj), m_dynamic_value_type(use_dynamic),
23b9c1b51eSKate Stone       m_formatters_match_vector({}, false), m_type_for_cache(),
24b9c1b51eSKate Stone       m_candidate_languages() {
258a9a8f39SEnrico Granata   m_type_for_cache = FormatManager::GetTypeForCache(valobj, use_dynamic);
26bc69dd2cSDavide Italiano   m_candidate_languages =
27bc69dd2cSDavide Italiano       FormatManager::GetCandidateLanguages(valobj.GetObjectRuntimeLanguage());
288a9a8f39SEnrico Granata }
298a9a8f39SEnrico Granata 
GetMatchesVector()30b9c1b51eSKate Stone FormattersMatchVector FormattersMatchData::GetMatchesVector() {
31b9c1b51eSKate Stone   if (!m_formatters_match_vector.second) {
328a9a8f39SEnrico Granata     m_formatters_match_vector.second = true;
33b9c1b51eSKate Stone     m_formatters_match_vector.first =
34b9c1b51eSKate Stone         FormatManager::GetPossibleMatches(m_valobj, m_dynamic_value_type);
358a9a8f39SEnrico Granata   }
368a9a8f39SEnrico Granata   return m_formatters_match_vector.first;
378a9a8f39SEnrico Granata }
388a9a8f39SEnrico Granata 
GetTypeForCache()39b9c1b51eSKate Stone ConstString FormattersMatchData::GetTypeForCache() { return m_type_for_cache; }
408a9a8f39SEnrico Granata 
GetCandidateLanguages()41b9c1b51eSKate Stone CandidateLanguagesVector FormattersMatchData::GetCandidateLanguages() {
428a9a8f39SEnrico Granata   return m_candidate_languages;
438a9a8f39SEnrico Granata }
448a9a8f39SEnrico Granata 
GetValueObject()45b9c1b51eSKate Stone ValueObject &FormattersMatchData::GetValueObject() { return m_valobj; }
468a9a8f39SEnrico Granata 
GetDynamicValueType()47b9c1b51eSKate Stone lldb::DynamicValueType FormattersMatchData::GetDynamicValueType() {
488a9a8f39SEnrico Granata   return m_dynamic_value_type;
498a9a8f39SEnrico Granata }
50