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 liblldb_LibStdCpp_h_
10 #define liblldb_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 LibStdcppVectorIteratorSyntheticFrontEndCreator(CXXSyntheticChildren *,
46                                                 lldb::ValueObjectSP);
47 
48 SyntheticChildrenFrontEnd *
49 LibStdcppSharedPtrSyntheticFrontEndCreator(CXXSyntheticChildren *,
50                                            lldb::ValueObjectSP);
51 
52 SyntheticChildrenFrontEnd *
53 LibStdcppUniquePtrSyntheticFrontEndCreator(CXXSyntheticChildren *,
54                                            lldb::ValueObjectSP);
55 
56 } // namespace formatters
57 } // namespace lldb_private
58 
59 #endif // liblldb_LibStdCpp_h_
60