1b9c1b51eSKate Stone //===-- FormatClasses.cpp ----------------------------------------*- C++
2b9c1b51eSKate Stone //-*-===//
35548cb50SEnrico Granata //
42946cd70SChandler Carruth // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
52946cd70SChandler Carruth // See https://llvm.org/LICENSE.txt for license information.
62946cd70SChandler Carruth // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
75548cb50SEnrico Granata //
85548cb50SEnrico Granata //===----------------------------------------------------------------------===//
95548cb50SEnrico Granata 
10de61cecdSEnrico Granata #include "lldb/DataFormatters/FormatClasses.h"
115548cb50SEnrico Granata 
128a9a8f39SEnrico Granata #include "lldb/DataFormatters/FormatManager.h"
138a9a8f39SEnrico Granata 
145548cb50SEnrico Granata 
155548cb50SEnrico Granata 
165548cb50SEnrico Granata 
175548cb50SEnrico Granata 
185548cb50SEnrico Granata using namespace lldb;
195548cb50SEnrico Granata using namespace lldb_private;
205548cb50SEnrico Granata 
21b9c1b51eSKate Stone FormattersMatchData::FormattersMatchData(ValueObject &valobj,
22b9c1b51eSKate Stone                                          lldb::DynamicValueType use_dynamic)
23b9c1b51eSKate Stone     : m_valobj(valobj), m_dynamic_value_type(use_dynamic),
24b9c1b51eSKate Stone       m_formatters_match_vector({}, false), m_type_for_cache(),
25b9c1b51eSKate Stone       m_candidate_languages() {
268a9a8f39SEnrico Granata   m_type_for_cache = FormatManager::GetTypeForCache(valobj, use_dynamic);
27*bc69dd2cSDavide Italiano   m_candidate_languages =
28*bc69dd2cSDavide Italiano       FormatManager::GetCandidateLanguages(valobj.GetObjectRuntimeLanguage());
298a9a8f39SEnrico Granata }
308a9a8f39SEnrico Granata 
31b9c1b51eSKate Stone FormattersMatchVector FormattersMatchData::GetMatchesVector() {
32b9c1b51eSKate Stone   if (!m_formatters_match_vector.second) {
338a9a8f39SEnrico Granata     m_formatters_match_vector.second = true;
34b9c1b51eSKate Stone     m_formatters_match_vector.first =
35b9c1b51eSKate Stone         FormatManager::GetPossibleMatches(m_valobj, m_dynamic_value_type);
368a9a8f39SEnrico Granata   }
378a9a8f39SEnrico Granata   return m_formatters_match_vector.first;
388a9a8f39SEnrico Granata }
398a9a8f39SEnrico Granata 
40b9c1b51eSKate Stone ConstString FormattersMatchData::GetTypeForCache() { return m_type_for_cache; }
418a9a8f39SEnrico Granata 
42b9c1b51eSKate Stone CandidateLanguagesVector FormattersMatchData::GetCandidateLanguages() {
438a9a8f39SEnrico Granata   return m_candidate_languages;
448a9a8f39SEnrico Granata }
458a9a8f39SEnrico Granata 
46b9c1b51eSKate Stone ValueObject &FormattersMatchData::GetValueObject() { return m_valobj; }
478a9a8f39SEnrico Granata 
48b9c1b51eSKate Stone lldb::DynamicValueType FormattersMatchData::GetDynamicValueType() {
498a9a8f39SEnrico Granata   return m_dynamic_value_type;
508a9a8f39SEnrico Granata }
51