1 | //===-- Cocoa.h ---------------------------------------------------*- C++ |
2 | //-*-===// |
3 | // |
4 | // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
5 | // See https://llvm.org/LICENSE.txt for license information. |
6 | // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
7 | // |
8 | //===----------------------------------------------------------------------===// |
9 | |
10 | #ifndef LLDB_SOURCE_PLUGINS_LANGUAGE_OBJC_COCOA_H |
11 | #define LLDB_SOURCE_PLUGINS_LANGUAGE_OBJC_COCOA_H |
12 | |
13 | #include "lldb/Core/ValueObject.h" |
14 | #include "lldb/DataFormatters/TypeSummary.h" |
15 | #include "lldb/DataFormatters/TypeSynthetic.h" |
16 | #include "lldb/Utility/Stream.h" |
17 | |
18 | #include "Plugins/LanguageRuntime/ObjC/ObjCLanguageRuntime.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 // LLDB_SOURCE_PLUGINS_LANGUAGE_OBJC_COCOA_H |
117 | |