1b9c1b51eSKate Stone //===-- FormatClasses.cpp ----------------------------------------*- C++ 2b9c1b51eSKate Stone //-*-===// 35548cb50SEnrico Granata // 4*2946cd70SChandler Carruth // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 5*2946cd70SChandler Carruth // See https://llvm.org/LICENSE.txt for license information. 6*2946cd70SChandler 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); 278a9a8f39SEnrico Granata m_candidate_languages = FormatManager::GetCandidateLanguages(valobj); 288a9a8f39SEnrico Granata } 298a9a8f39SEnrico Granata 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 39b9c1b51eSKate Stone ConstString FormattersMatchData::GetTypeForCache() { return m_type_for_cache; } 408a9a8f39SEnrico Granata 41b9c1b51eSKate Stone CandidateLanguagesVector FormattersMatchData::GetCandidateLanguages() { 428a9a8f39SEnrico Granata return m_candidate_languages; 438a9a8f39SEnrico Granata } 448a9a8f39SEnrico Granata 45b9c1b51eSKate Stone ValueObject &FormattersMatchData::GetValueObject() { return m_valobj; } 468a9a8f39SEnrico Granata 47b9c1b51eSKate Stone lldb::DynamicValueType FormattersMatchData::GetDynamicValueType() { 488a9a8f39SEnrico Granata return m_dynamic_value_type; 498a9a8f39SEnrico Granata } 50