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