1 //===-- FormatClasses.cpp ----------------------------------------*- C++ -*-===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 10 #include "lldb/DataFormatters/FormatClasses.h" 11 12 #include "lldb/DataFormatters/FormatManager.h" 13 14 // C Includes 15 16 // C++ Includes 17 18 // Other libraries and framework includes 19 20 // Project includes 21 22 using namespace lldb; 23 using namespace lldb_private; 24 25 FormattersMatchData::FormattersMatchData (ValueObject& valobj, lldb::DynamicValueType use_dynamic) : 26 m_valobj(valobj), 27 m_dynamic_value_type(use_dynamic), 28 m_formatters_match_vector({},false), 29 m_type_for_cache(), 30 m_candidate_languages() 31 { 32 m_type_for_cache = FormatManager::GetTypeForCache(valobj, use_dynamic); 33 m_candidate_languages = FormatManager::GetCandidateLanguages(valobj); 34 } 35 36 FormattersMatchVector 37 FormattersMatchData::GetMatchesVector () 38 { 39 if (!m_formatters_match_vector.second) 40 { 41 m_formatters_match_vector.second = true; 42 m_formatters_match_vector.first = FormatManager::GetPossibleMatches(m_valobj, m_dynamic_value_type); 43 } 44 return m_formatters_match_vector.first; 45 } 46 47 ConstString 48 FormattersMatchData::GetTypeForCache () 49 { 50 return m_type_for_cache; 51 } 52 53 CandidateLanguagesVector 54 FormattersMatchData::GetCandidateLanguages () 55 { 56 return m_candidate_languages; 57 } 58 59 ValueObject& 60 FormattersMatchData::GetValueObject () 61 { 62 return m_valobj; 63 } 64 65 lldb::DynamicValueType 66 FormattersMatchData::GetDynamicValueType () 67 { 68 return m_dynamic_value_type; 69 } 70