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