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 
16 
17 
18 
19 using namespace lldb;
20 using namespace lldb_private;
21 
22 FormattersMatchData::FormattersMatchData(ValueObject &valobj,
23                                          lldb::DynamicValueType use_dynamic)
24     : m_valobj(valobj), m_dynamic_value_type(use_dynamic),
25       m_formatters_match_vector({}, false), m_type_for_cache(),
26       m_candidate_languages() {
27   m_type_for_cache = FormatManager::GetTypeForCache(valobj, use_dynamic);
28   m_candidate_languages = FormatManager::GetCandidateLanguages(valobj);
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