]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/Cocoa.h
Merge clang 7.0.1 and several follow-up changes
[FreeBSD/FreeBSD.git] / contrib / llvm / tools / lldb / source / Plugins / Language / ObjC / Cocoa.h
1 //===-- Cocoa.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_Cocoa_h_
12 #define liblldb_Cocoa_h_
13
14 #include "lldb/Core/ValueObject.h"
15 #include "lldb/DataFormatters/TypeSummary.h"
16 #include "lldb/DataFormatters/TypeSynthetic.h"
17 #include "lldb/Target/ObjCLanguageRuntime.h"
18 #include "lldb/Utility/Stream.h"
19
20 namespace lldb_private {
21 namespace formatters {
22 bool NSIndexSetSummaryProvider(ValueObject &valobj, Stream &stream,
23                                const TypeSummaryOptions &options);
24
25 bool NSArraySummaryProvider(ValueObject &valobj, Stream &stream,
26                             const TypeSummaryOptions &options);
27
28 template <bool needs_at>
29 bool NSDataSummaryProvider(ValueObject &valobj, Stream &stream,
30                            const TypeSummaryOptions &options);
31
32 bool NSNumberSummaryProvider(ValueObject &valobj, Stream &stream,
33                              const TypeSummaryOptions &options);
34
35 bool NSDecimalNumberSummaryProvider(ValueObject &valobj, Stream &stream,
36                                     const TypeSummaryOptions &options);
37
38 bool NSNotificationSummaryProvider(ValueObject &valobj, Stream &stream,
39                                    const TypeSummaryOptions &options);
40
41 bool NSTimeZoneSummaryProvider(ValueObject &valobj, Stream &stream,
42                                const TypeSummaryOptions &options);
43
44 bool NSMachPortSummaryProvider(ValueObject &valobj, Stream &stream,
45                                const TypeSummaryOptions &options);
46
47 bool NSDateSummaryProvider(ValueObject &valobj, Stream &stream,
48                            const TypeSummaryOptions &options);
49
50 bool NSBundleSummaryProvider(ValueObject &valobj, Stream &stream,
51                              const TypeSummaryOptions &options);
52
53 bool NSURLSummaryProvider(ValueObject &valobj, Stream &stream,
54                           const TypeSummaryOptions &options);
55
56 extern template bool NSDataSummaryProvider<true>(ValueObject &, Stream &,
57                                                  const TypeSummaryOptions &);
58
59 extern template bool NSDataSummaryProvider<false>(ValueObject &, Stream &,
60                                                   const TypeSummaryOptions &);
61
62 SyntheticChildrenFrontEnd *
63 NSArraySyntheticFrontEndCreator(CXXSyntheticChildren *, lldb::ValueObjectSP);
64
65 SyntheticChildrenFrontEnd *
66 NSIndexPathSyntheticFrontEndCreator(CXXSyntheticChildren *,
67                                     lldb::ValueObjectSP);
68
69 bool ObjCClassSummaryProvider(ValueObject &valobj, Stream &stream,
70                               const TypeSummaryOptions &options);
71
72 SyntheticChildrenFrontEnd *
73 ObjCClassSyntheticFrontEndCreator(CXXSyntheticChildren *, lldb::ValueObjectSP);
74
75 bool ObjCBOOLSummaryProvider(ValueObject &valobj, Stream &stream,
76                              const TypeSummaryOptions &options);
77
78 bool ObjCBooleanSummaryProvider(ValueObject &valobj, Stream &stream,
79                                 const TypeSummaryOptions &options);
80
81 template <bool is_sel_ptr>
82 bool ObjCSELSummaryProvider(ValueObject &valobj, Stream &stream,
83                             const TypeSummaryOptions &options);
84
85 extern template bool ObjCSELSummaryProvider<true>(ValueObject &, Stream &,
86                                                   const TypeSummaryOptions &);
87
88 extern template bool ObjCSELSummaryProvider<false>(ValueObject &, Stream &,
89                                                    const TypeSummaryOptions &);
90
91 bool NSError_SummaryProvider(ValueObject &valobj, Stream &stream,
92                              const TypeSummaryOptions &options);
93
94 bool NSException_SummaryProvider(ValueObject &valobj, Stream &stream,
95                                  const TypeSummaryOptions &options);
96
97 SyntheticChildrenFrontEnd *
98 NSErrorSyntheticFrontEndCreator(CXXSyntheticChildren *,
99                                 lldb::ValueObjectSP valobj_sp);
100
101 SyntheticChildrenFrontEnd *
102 NSExceptionSyntheticFrontEndCreator(CXXSyntheticChildren *,
103                                     lldb::ValueObjectSP valobj_sp);
104
105 class NSArray_Additionals {
106 public:
107   static std::map<ConstString, CXXFunctionSummaryFormat::Callback> &
108   GetAdditionalSummaries();
109
110   static std::map<ConstString, CXXSyntheticChildren::CreateFrontEndCallback> &
111   GetAdditionalSynthetics();
112 };
113 } // namespace formatters
114 } // namespace lldb_private
115
116 #endif // liblldb_Cocoa_h_