1 //===-- FormatClasses.cpp ----------------------------------------*- C++ 2 //-*-===// 3 // 4 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 5 // See https://llvm.org/LICENSE.txt for license information. 6 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 7 // 8 //===----------------------------------------------------------------------===// 9 10 #include "lldb/DataFormatters/FormatClasses.h" 11 12 #include "lldb/DataFormatters/FormatManager.h" 13 14 15 16 17 18 using namespace lldb; 19 using namespace lldb_private; 20 21 FormattersMatchData::FormattersMatchData(ValueObject &valobj, 22 lldb::DynamicValueType use_dynamic) 23 : m_valobj(valobj), m_dynamic_value_type(use_dynamic), 24 m_formatters_match_vector({}, false), m_type_for_cache(), 25 m_candidate_languages() { 26 m_type_for_cache = FormatManager::GetTypeForCache(valobj, use_dynamic); 27 m_candidate_languages = 28 FormatManager::GetCandidateLanguages(valobj.GetObjectRuntimeLanguage()); 29 } 30 31 FormattersMatchVector FormattersMatchData::GetMatchesVector() { 32 if (!m_formatters_match_vector.second) { 33 m_formatters_match_vector.second = true; 34 m_formatters_match_vector.first = 35 FormatManager::GetPossibleMatches(m_valobj, m_dynamic_value_type); 36 } 37 return m_formatters_match_vector.first; 38 } 39 40 ConstString FormattersMatchData::GetTypeForCache() { return m_type_for_cache; } 41 42 CandidateLanguagesVector FormattersMatchData::GetCandidateLanguages() { 43 return m_candidate_languages; 44 } 45 46 ValueObject &FormattersMatchData::GetValueObject() { return m_valobj; } 47 48 lldb::DynamicValueType FormattersMatchData::GetDynamicValueType() { 49 return m_dynamic_value_type; 50 } 51