FormatClasses.cpp revision 344779
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
19using namespace lldb;
20using namespace lldb_private;
21
22FormattersMatchData::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
31FormattersMatchVector 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
40ConstString FormattersMatchData::GetTypeForCache() { return m_type_for_cache; }
41
42CandidateLanguagesVector FormattersMatchData::GetCandidateLanguages() {
43  return m_candidate_languages;
44}
45
46ValueObject &FormattersMatchData::GetValueObject() { return m_valobj; }
47
48lldb::DynamicValueType FormattersMatchData::GetDynamicValueType() {
49  return m_dynamic_value_type;
50}
51