1 //===-- LanguageCategory.h----------------------------------------*- C++
4 // The LLVM Compiler Infrastructure
6 // This file is distributed under the University of Illinois Open Source
7 // License. See LICENSE.TXT for details.
9 //===----------------------------------------------------------------------===//
11 #ifndef lldb_LanguageCategory_h_
12 #define lldb_LanguageCategory_h_
17 // Other libraries and framework includes
19 #include "lldb/DataFormatters/FormatCache.h"
20 #include "lldb/DataFormatters/FormatClasses.h"
21 #include "lldb/lldb-public.h"
25 namespace lldb_private {
27 class LanguageCategory {
29 typedef std::unique_ptr<LanguageCategory> UniquePointer;
31 LanguageCategory(lldb::LanguageType lang_type);
33 bool Get(FormattersMatchData &match_data, lldb::TypeFormatImplSP &format_sp);
35 bool Get(FormattersMatchData &match_data, lldb::TypeSummaryImplSP &format_sp);
37 bool Get(FormattersMatchData &match_data,
38 lldb::SyntheticChildrenSP &format_sp);
40 bool Get(FormattersMatchData &match_data,
41 lldb::TypeValidatorImplSP &format_sp);
43 bool GetHardcoded(FormatManager &fmt_mgr, FormattersMatchData &match_data,
44 lldb::TypeFormatImplSP &format_sp);
46 bool GetHardcoded(FormatManager &fmt_mgr, FormattersMatchData &match_data,
47 lldb::TypeSummaryImplSP &format_sp);
49 bool GetHardcoded(FormatManager &fmt_mgr, FormattersMatchData &match_data,
50 lldb::SyntheticChildrenSP &format_sp);
52 bool GetHardcoded(FormatManager &fmt_mgr, FormattersMatchData &match_data,
53 lldb::TypeValidatorImplSP &format_sp);
55 lldb::TypeCategoryImplSP GetCategory() const;
57 FormatCache &GetFormatCache();
66 lldb::TypeCategoryImplSP m_category_sp;
68 HardcodedFormatters::HardcodedFormatFinder m_hardcoded_formats;
69 HardcodedFormatters::HardcodedSummaryFinder m_hardcoded_summaries;
70 HardcodedFormatters::HardcodedSyntheticFinder m_hardcoded_synthetics;
71 HardcodedFormatters::HardcodedValidatorFinder m_hardcoded_validators;
73 lldb_private::FormatCache m_format_cache;
78 } // namespace lldb_private
80 #endif // lldb_LanguageCategory_h_