1 //===-- LibStdCpp.h ---------------------------------------------------*- C++
2 //-*-===//
3 //
4 //                     The LLVM Compiler Infrastructure
5 //
6 // This file is distributed under the University of Illinois Open Source
7 // License. See LICENSE.TXT for details.
8 //
9 //===----------------------------------------------------------------------===//
10 
11 #ifndef liblldb_LibStdCpp_h_
12 #define liblldb_LibStdCpp_h_
13 
14 #include "lldb/Core/Stream.h"
15 #include "lldb/Core/ValueObject.h"
16 #include "lldb/DataFormatters/TypeSummary.h"
17 #include "lldb/DataFormatters/TypeSynthetic.h"
18 
19 namespace lldb_private {
20 namespace formatters {
21 bool LibStdcppStringSummaryProvider(
22     ValueObject &valobj, Stream &stream,
23     const TypeSummaryOptions &options); // libcstdc++ c++11 std::string
24 
25 bool LibStdcppWStringSummaryProvider(
26     ValueObject &valobj, Stream &stream,
27     const TypeSummaryOptions &options); // libcstdc++ c++11 std::wstring
28 
29 bool LibStdcppSmartPointerSummaryProvider(
30     ValueObject &valobj, Stream &stream,
31     const TypeSummaryOptions
32         &options); // libstdc++ std::shared_ptr<> and std::weak_ptr<>
33 
34 SyntheticChildrenFrontEnd *
35 LibstdcppMapIteratorSyntheticFrontEndCreator(CXXSyntheticChildren *,
36                                              lldb::ValueObjectSP);
37 
38 SyntheticChildrenFrontEnd *
39 LibStdcppVectorIteratorSyntheticFrontEndCreator(CXXSyntheticChildren *,
40                                                 lldb::ValueObjectSP);
41 
42 SyntheticChildrenFrontEnd *
43 LibStdcppSharedPtrSyntheticFrontEndCreator(CXXSyntheticChildren *,
44                                            lldb::ValueObjectSP);
45 } // namespace formatters
46 } // namespace lldb_private
47 
48 #endif // liblldb_LibStdCpp_h_
49