1 //===-- FormatClasses.cpp ----------------------------------------*- C++
4 // The LLVM Compiler Infrastructure
6 // This file is distributed under the University of Illinois Open Source
7 // License. See LICENSE.TXT for details.
9 //===----------------------------------------------------------------------===//
11 #include "lldb/DataFormatters/FormatClasses.h"
13 #include "lldb/DataFormatters/FormatManager.h"
19 // Other libraries and framework includes
24 using namespace lldb_private;
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);
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);
41 return m_formatters_match_vector.first;
44 ConstString FormattersMatchData::GetTypeForCache() { return m_type_for_cache; }
46 CandidateLanguagesVector FormattersMatchData::GetCandidateLanguages() {
47 return m_candidate_languages;
50 ValueObject &FormattersMatchData::GetValueObject() { return m_valobj; }
52 lldb::DynamicValueType FormattersMatchData::GetDynamicValueType() {
53 return m_dynamic_value_type;