xref: /openbsd-src/gnu/llvm/lldb/source/DataFormatters/FormatClasses.cpp (revision dda2819751e49c83612958492e38917049128b41)
1*dda28197Spatrick //===-- FormatClasses.cpp -------------------------------------------------===//
2061da546Spatrick //
3061da546Spatrick // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4061da546Spatrick // See https://llvm.org/LICENSE.txt for license information.
5061da546Spatrick // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6061da546Spatrick //
7061da546Spatrick //===----------------------------------------------------------------------===//
8061da546Spatrick 
9061da546Spatrick #include "lldb/DataFormatters/FormatClasses.h"
10061da546Spatrick 
11061da546Spatrick #include "lldb/DataFormatters/FormatManager.h"
12061da546Spatrick 
13061da546Spatrick 
14061da546Spatrick 
15061da546Spatrick 
16061da546Spatrick 
17061da546Spatrick using namespace lldb;
18061da546Spatrick using namespace lldb_private;
19061da546Spatrick 
FormattersMatchData(ValueObject & valobj,lldb::DynamicValueType use_dynamic)20061da546Spatrick FormattersMatchData::FormattersMatchData(ValueObject &valobj,
21061da546Spatrick                                          lldb::DynamicValueType use_dynamic)
22061da546Spatrick     : m_valobj(valobj), m_dynamic_value_type(use_dynamic),
23061da546Spatrick       m_formatters_match_vector({}, false), m_type_for_cache(),
24061da546Spatrick       m_candidate_languages() {
25061da546Spatrick   m_type_for_cache = FormatManager::GetTypeForCache(valobj, use_dynamic);
26061da546Spatrick   m_candidate_languages =
27061da546Spatrick       FormatManager::GetCandidateLanguages(valobj.GetObjectRuntimeLanguage());
28061da546Spatrick }
29061da546Spatrick 
GetMatchesVector()30061da546Spatrick FormattersMatchVector FormattersMatchData::GetMatchesVector() {
31061da546Spatrick   if (!m_formatters_match_vector.second) {
32061da546Spatrick     m_formatters_match_vector.second = true;
33061da546Spatrick     m_formatters_match_vector.first =
34061da546Spatrick         FormatManager::GetPossibleMatches(m_valobj, m_dynamic_value_type);
35061da546Spatrick   }
36061da546Spatrick   return m_formatters_match_vector.first;
37061da546Spatrick }
38061da546Spatrick 
GetTypeForCache()39061da546Spatrick ConstString FormattersMatchData::GetTypeForCache() { return m_type_for_cache; }
40061da546Spatrick 
GetCandidateLanguages()41061da546Spatrick CandidateLanguagesVector FormattersMatchData::GetCandidateLanguages() {
42061da546Spatrick   return m_candidate_languages;
43061da546Spatrick }
44061da546Spatrick 
GetValueObject()45061da546Spatrick ValueObject &FormattersMatchData::GetValueObject() { return m_valobj; }
46061da546Spatrick 
GetDynamicValueType()47061da546Spatrick lldb::DynamicValueType FormattersMatchData::GetDynamicValueType() {
48061da546Spatrick   return m_dynamic_value_type;
49061da546Spatrick }
50