xref: /freebsd/contrib/llvm-project/lldb/source/Plugins/Language/CPlusPlus/LibStdcpp.h (revision 0eae32dcef82f6f06de6419a0d623d7def0cc8f6)
1 //===-- LibStdcpp.h ---------------------------------------------*- C++ -*-===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #ifndef LLDB_SOURCE_PLUGINS_LANGUAGE_CPLUSPLUS_LIBSTDCPP_H
10 #define LLDB_SOURCE_PLUGINS_LANGUAGE_CPLUSPLUS_LIBSTDCPP_H
11 
12 #include "lldb/Core/ValueObject.h"
13 #include "lldb/DataFormatters/TypeSummary.h"
14 #include "lldb/DataFormatters/TypeSynthetic.h"
15 #include "lldb/Utility/Stream.h"
16 
17 namespace lldb_private {
18 namespace formatters {
19 bool LibStdcppStringSummaryProvider(
20     ValueObject &valobj, Stream &stream,
21     const TypeSummaryOptions &options); // libcstdc++ c++11 std::string
22 
23 bool LibStdcppWStringSummaryProvider(
24     ValueObject &valobj, Stream &stream,
25     const TypeSummaryOptions &options); // libcstdc++ c++11 std::wstring
26 
27 bool LibStdcppSmartPointerSummaryProvider(
28     ValueObject &valobj, Stream &stream,
29     const TypeSummaryOptions
30         &options); // libstdc++ std::shared_ptr<> and std::weak_ptr<>
31 
32 bool LibStdcppUniquePointerSummaryProvider(
33     ValueObject &valobj, Stream &stream,
34     const TypeSummaryOptions &options); // libstdc++ std::unique_ptr<>
35 
36 SyntheticChildrenFrontEnd *
37 LibstdcppMapIteratorSyntheticFrontEndCreator(CXXSyntheticChildren *,
38                                              lldb::ValueObjectSP);
39 
40 SyntheticChildrenFrontEnd *
41 LibStdcppTupleSyntheticFrontEndCreator(CXXSyntheticChildren *,
42                                        lldb::ValueObjectSP);
43 
44 SyntheticChildrenFrontEnd *
45 LibStdcppBitsetSyntheticFrontEndCreator(CXXSyntheticChildren *,
46                                         lldb::ValueObjectSP);
47 
48 SyntheticChildrenFrontEnd *
49 LibStdcppOptionalSyntheticFrontEndCreator(CXXSyntheticChildren *,
50                                           lldb::ValueObjectSP);
51 
52 SyntheticChildrenFrontEnd *
53 LibStdcppVectorIteratorSyntheticFrontEndCreator(CXXSyntheticChildren *,
54                                                 lldb::ValueObjectSP);
55 
56 SyntheticChildrenFrontEnd *
57 LibStdcppSharedPtrSyntheticFrontEndCreator(CXXSyntheticChildren *,
58                                            lldb::ValueObjectSP);
59 
60 SyntheticChildrenFrontEnd *
61 LibStdcppUniquePtrSyntheticFrontEndCreator(CXXSyntheticChildren *,
62                                            lldb::ValueObjectSP);
63 
64 } // namespace formatters
65 } // namespace lldb_private
66 
67 #endif // LLDB_SOURCE_PLUGINS_LANGUAGE_CPLUSPLUS_LIBSTDCPP_H
68