1 //===-- LanguageCategory.h----------------------------------------*- C++
4 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5 // See https://llvm.org/LICENSE.txt for license information.
6 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
8 //===----------------------------------------------------------------------===//
10 #ifndef lldb_LanguageCategory_h_
11 #define lldb_LanguageCategory_h_
14 #include "lldb/DataFormatters/FormatCache.h"
15 #include "lldb/DataFormatters/FormatClasses.h"
16 #include "lldb/lldb-public.h"
20 namespace lldb_private {
22 class LanguageCategory {
24 typedef std::unique_ptr<LanguageCategory> UniquePointer;
26 LanguageCategory(lldb::LanguageType lang_type);
28 bool Get(FormattersMatchData &match_data, lldb::TypeFormatImplSP &format_sp);
30 bool Get(FormattersMatchData &match_data, lldb::TypeSummaryImplSP &format_sp);
32 bool Get(FormattersMatchData &match_data,
33 lldb::SyntheticChildrenSP &format_sp);
35 bool Get(FormattersMatchData &match_data,
36 lldb::TypeValidatorImplSP &format_sp);
38 bool GetHardcoded(FormatManager &fmt_mgr, FormattersMatchData &match_data,
39 lldb::TypeFormatImplSP &format_sp);
41 bool GetHardcoded(FormatManager &fmt_mgr, FormattersMatchData &match_data,
42 lldb::TypeSummaryImplSP &format_sp);
44 bool GetHardcoded(FormatManager &fmt_mgr, FormattersMatchData &match_data,
45 lldb::SyntheticChildrenSP &format_sp);
47 bool GetHardcoded(FormatManager &fmt_mgr, FormattersMatchData &match_data,
48 lldb::TypeValidatorImplSP &format_sp);
50 lldb::TypeCategoryImplSP GetCategory() const;
52 FormatCache &GetFormatCache();
61 lldb::TypeCategoryImplSP m_category_sp;
63 HardcodedFormatters::HardcodedFormatFinder m_hardcoded_formats;
64 HardcodedFormatters::HardcodedSummaryFinder m_hardcoded_summaries;
65 HardcodedFormatters::HardcodedSyntheticFinder m_hardcoded_synthetics;
66 HardcodedFormatters::HardcodedValidatorFinder m_hardcoded_validators;
68 lldb_private::FormatCache m_format_cache;
73 } // namespace lldb_private
75 #endif // lldb_LanguageCategory_h_