15548cb50SEnrico Granata //===-- FormatClasses.cpp ----------------------------------------*- C++ -*-===// 25548cb50SEnrico Granata // 35548cb50SEnrico Granata // The LLVM Compiler Infrastructure 45548cb50SEnrico Granata // 55548cb50SEnrico Granata // This file is distributed under the University of Illinois Open Source 65548cb50SEnrico Granata // License. See LICENSE.TXT for details. 75548cb50SEnrico Granata // 85548cb50SEnrico Granata //===----------------------------------------------------------------------===// 95548cb50SEnrico Granata 10de61cecdSEnrico Granata #include "lldb/DataFormatters/FormatClasses.h" 115548cb50SEnrico Granata 12*8a9a8f39SEnrico Granata #include "lldb/DataFormatters/FormatManager.h" 13*8a9a8f39SEnrico Granata 145548cb50SEnrico Granata // C Includes 155548cb50SEnrico Granata 165548cb50SEnrico Granata // C++ Includes 175548cb50SEnrico Granata 185548cb50SEnrico Granata // Other libraries and framework includes 195548cb50SEnrico Granata 205548cb50SEnrico Granata // Project includes 215548cb50SEnrico Granata 225548cb50SEnrico Granata using namespace lldb; 235548cb50SEnrico Granata using namespace lldb_private; 245548cb50SEnrico Granata 25*8a9a8f39SEnrico Granata FormattersMatchData::FormattersMatchData (ValueObject& valobj, lldb::DynamicValueType use_dynamic) : 26*8a9a8f39SEnrico Granata m_valobj(valobj), 27*8a9a8f39SEnrico Granata m_dynamic_value_type(use_dynamic), 28*8a9a8f39SEnrico Granata m_formatters_match_vector({},false), 29*8a9a8f39SEnrico Granata m_type_for_cache(), 30*8a9a8f39SEnrico Granata m_candidate_languages() 31*8a9a8f39SEnrico Granata { 32*8a9a8f39SEnrico Granata m_type_for_cache = FormatManager::GetTypeForCache(valobj, use_dynamic); 33*8a9a8f39SEnrico Granata m_candidate_languages = FormatManager::GetCandidateLanguages(valobj); 34*8a9a8f39SEnrico Granata } 35*8a9a8f39SEnrico Granata 36*8a9a8f39SEnrico Granata FormattersMatchVector 37*8a9a8f39SEnrico Granata FormattersMatchData::GetMatchesVector () 38*8a9a8f39SEnrico Granata { 39*8a9a8f39SEnrico Granata if (!m_formatters_match_vector.second) 40*8a9a8f39SEnrico Granata { 41*8a9a8f39SEnrico Granata m_formatters_match_vector.second = true; 42*8a9a8f39SEnrico Granata m_formatters_match_vector.first = FormatManager::GetPossibleMatches(m_valobj, m_dynamic_value_type); 43*8a9a8f39SEnrico Granata } 44*8a9a8f39SEnrico Granata return m_formatters_match_vector.first; 45*8a9a8f39SEnrico Granata } 46*8a9a8f39SEnrico Granata 47*8a9a8f39SEnrico Granata ConstString 48*8a9a8f39SEnrico Granata FormattersMatchData::GetTypeForCache () 49*8a9a8f39SEnrico Granata { 50*8a9a8f39SEnrico Granata return m_type_for_cache; 51*8a9a8f39SEnrico Granata } 52*8a9a8f39SEnrico Granata 53*8a9a8f39SEnrico Granata CandidateLanguagesVector 54*8a9a8f39SEnrico Granata FormattersMatchData::GetCandidateLanguages () 55*8a9a8f39SEnrico Granata { 56*8a9a8f39SEnrico Granata return m_candidate_languages; 57*8a9a8f39SEnrico Granata } 58*8a9a8f39SEnrico Granata 59*8a9a8f39SEnrico Granata ValueObject& 60*8a9a8f39SEnrico Granata FormattersMatchData::GetValueObject () 61*8a9a8f39SEnrico Granata { 62*8a9a8f39SEnrico Granata return m_valobj; 63*8a9a8f39SEnrico Granata } 64*8a9a8f39SEnrico Granata 65*8a9a8f39SEnrico Granata lldb::DynamicValueType 66*8a9a8f39SEnrico Granata FormattersMatchData::GetDynamicValueType () 67*8a9a8f39SEnrico Granata { 68*8a9a8f39SEnrico Granata return m_dynamic_value_type; 69*8a9a8f39SEnrico Granata } 70