1*b9c1b51eSKate Stone //===-- FormatClasses.cpp ----------------------------------------*- C++
2*b9c1b51eSKate Stone //-*-===//
35548cb50SEnrico Granata //
45548cb50SEnrico Granata //                     The LLVM Compiler Infrastructure
55548cb50SEnrico Granata //
65548cb50SEnrico Granata // This file is distributed under the University of Illinois Open Source
75548cb50SEnrico Granata // License. See LICENSE.TXT for details.
85548cb50SEnrico Granata //
95548cb50SEnrico Granata //===----------------------------------------------------------------------===//
105548cb50SEnrico Granata 
11de61cecdSEnrico Granata #include "lldb/DataFormatters/FormatClasses.h"
125548cb50SEnrico Granata 
138a9a8f39SEnrico Granata #include "lldb/DataFormatters/FormatManager.h"
148a9a8f39SEnrico Granata 
155548cb50SEnrico Granata // C Includes
165548cb50SEnrico Granata 
175548cb50SEnrico Granata // C++ Includes
185548cb50SEnrico Granata 
195548cb50SEnrico Granata // Other libraries and framework includes
205548cb50SEnrico Granata 
215548cb50SEnrico Granata // Project includes
225548cb50SEnrico Granata 
235548cb50SEnrico Granata using namespace lldb;
245548cb50SEnrico Granata using namespace lldb_private;
255548cb50SEnrico Granata 
26*b9c1b51eSKate Stone FormattersMatchData::FormattersMatchData(ValueObject &valobj,
27*b9c1b51eSKate Stone                                          lldb::DynamicValueType use_dynamic)
28*b9c1b51eSKate Stone     : m_valobj(valobj), m_dynamic_value_type(use_dynamic),
29*b9c1b51eSKate Stone       m_formatters_match_vector({}, false), m_type_for_cache(),
30*b9c1b51eSKate Stone       m_candidate_languages() {
318a9a8f39SEnrico Granata   m_type_for_cache = FormatManager::GetTypeForCache(valobj, use_dynamic);
328a9a8f39SEnrico Granata   m_candidate_languages = FormatManager::GetCandidateLanguages(valobj);
338a9a8f39SEnrico Granata }
348a9a8f39SEnrico Granata 
35*b9c1b51eSKate Stone FormattersMatchVector FormattersMatchData::GetMatchesVector() {
36*b9c1b51eSKate Stone   if (!m_formatters_match_vector.second) {
378a9a8f39SEnrico Granata     m_formatters_match_vector.second = true;
38*b9c1b51eSKate Stone     m_formatters_match_vector.first =
39*b9c1b51eSKate Stone         FormatManager::GetPossibleMatches(m_valobj, m_dynamic_value_type);
408a9a8f39SEnrico Granata   }
418a9a8f39SEnrico Granata   return m_formatters_match_vector.first;
428a9a8f39SEnrico Granata }
438a9a8f39SEnrico Granata 
44*b9c1b51eSKate Stone ConstString FormattersMatchData::GetTypeForCache() { return m_type_for_cache; }
458a9a8f39SEnrico Granata 
46*b9c1b51eSKate Stone CandidateLanguagesVector FormattersMatchData::GetCandidateLanguages() {
478a9a8f39SEnrico Granata   return m_candidate_languages;
488a9a8f39SEnrico Granata }
498a9a8f39SEnrico Granata 
50*b9c1b51eSKate Stone ValueObject &FormattersMatchData::GetValueObject() { return m_valobj; }
518a9a8f39SEnrico Granata 
52*b9c1b51eSKate Stone lldb::DynamicValueType FormattersMatchData::GetDynamicValueType() {
538a9a8f39SEnrico Granata   return m_dynamic_value_type;
548a9a8f39SEnrico Granata }
55