xref: /openbsd-src/gnu/llvm/lldb/source/Plugins/Language/ObjC/Cocoa.h (revision dda2819751e49c83612958492e38917049128b41)
1061da546Spatrick //===-- Cocoa.h ---------------------------------------------------*- C++
2061da546Spatrick //-*-===//
3061da546Spatrick //
4061da546Spatrick // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5061da546Spatrick // See https://llvm.org/LICENSE.txt for license information.
6061da546Spatrick // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7061da546Spatrick //
8061da546Spatrick //===----------------------------------------------------------------------===//
9061da546Spatrick 
10*dda28197Spatrick #ifndef LLDB_SOURCE_PLUGINS_LANGUAGE_OBJC_COCOA_H
11*dda28197Spatrick #define LLDB_SOURCE_PLUGINS_LANGUAGE_OBJC_COCOA_H
12061da546Spatrick 
13061da546Spatrick #include "lldb/Core/ValueObject.h"
14061da546Spatrick #include "lldb/DataFormatters/TypeSummary.h"
15061da546Spatrick #include "lldb/DataFormatters/TypeSynthetic.h"
16061da546Spatrick #include "lldb/Utility/Stream.h"
17061da546Spatrick 
18061da546Spatrick #include "Plugins/LanguageRuntime/ObjC/ObjCLanguageRuntime.h"
19061da546Spatrick 
20061da546Spatrick namespace lldb_private {
21061da546Spatrick namespace formatters {
22061da546Spatrick bool NSIndexSetSummaryProvider(ValueObject &valobj, Stream &stream,
23061da546Spatrick                                const TypeSummaryOptions &options);
24061da546Spatrick 
25061da546Spatrick bool NSArraySummaryProvider(ValueObject &valobj, Stream &stream,
26061da546Spatrick                             const TypeSummaryOptions &options);
27061da546Spatrick 
28061da546Spatrick template <bool needs_at>
29061da546Spatrick bool NSDataSummaryProvider(ValueObject &valobj, Stream &stream,
30061da546Spatrick                            const TypeSummaryOptions &options);
31061da546Spatrick 
32061da546Spatrick bool NSNumberSummaryProvider(ValueObject &valobj, Stream &stream,
33061da546Spatrick                              const TypeSummaryOptions &options);
34061da546Spatrick 
35061da546Spatrick bool NSDecimalNumberSummaryProvider(ValueObject &valobj, Stream &stream,
36061da546Spatrick                                     const TypeSummaryOptions &options);
37061da546Spatrick 
38061da546Spatrick bool NSNotificationSummaryProvider(ValueObject &valobj, Stream &stream,
39061da546Spatrick                                    const TypeSummaryOptions &options);
40061da546Spatrick 
41061da546Spatrick bool NSTimeZoneSummaryProvider(ValueObject &valobj, Stream &stream,
42061da546Spatrick                                const TypeSummaryOptions &options);
43061da546Spatrick 
44061da546Spatrick bool NSMachPortSummaryProvider(ValueObject &valobj, Stream &stream,
45061da546Spatrick                                const TypeSummaryOptions &options);
46061da546Spatrick 
47061da546Spatrick bool NSDateSummaryProvider(ValueObject &valobj, Stream &stream,
48061da546Spatrick                            const TypeSummaryOptions &options);
49061da546Spatrick 
50061da546Spatrick bool NSBundleSummaryProvider(ValueObject &valobj, Stream &stream,
51061da546Spatrick                              const TypeSummaryOptions &options);
52061da546Spatrick 
53061da546Spatrick bool NSURLSummaryProvider(ValueObject &valobj, Stream &stream,
54061da546Spatrick                           const TypeSummaryOptions &options);
55061da546Spatrick 
56061da546Spatrick extern template bool NSDataSummaryProvider<true>(ValueObject &, Stream &,
57061da546Spatrick                                                  const TypeSummaryOptions &);
58061da546Spatrick 
59061da546Spatrick extern template bool NSDataSummaryProvider<false>(ValueObject &, Stream &,
60061da546Spatrick                                                   const TypeSummaryOptions &);
61061da546Spatrick 
62061da546Spatrick SyntheticChildrenFrontEnd *
63061da546Spatrick NSArraySyntheticFrontEndCreator(CXXSyntheticChildren *, lldb::ValueObjectSP);
64061da546Spatrick 
65061da546Spatrick SyntheticChildrenFrontEnd *
66061da546Spatrick NSIndexPathSyntheticFrontEndCreator(CXXSyntheticChildren *,
67061da546Spatrick                                     lldb::ValueObjectSP);
68061da546Spatrick 
69061da546Spatrick bool ObjCClassSummaryProvider(ValueObject &valobj, Stream &stream,
70061da546Spatrick                               const TypeSummaryOptions &options);
71061da546Spatrick 
72061da546Spatrick SyntheticChildrenFrontEnd *
73061da546Spatrick ObjCClassSyntheticFrontEndCreator(CXXSyntheticChildren *, lldb::ValueObjectSP);
74061da546Spatrick 
75061da546Spatrick bool ObjCBOOLSummaryProvider(ValueObject &valobj, Stream &stream,
76061da546Spatrick                              const TypeSummaryOptions &options);
77061da546Spatrick 
78061da546Spatrick bool ObjCBooleanSummaryProvider(ValueObject &valobj, Stream &stream,
79061da546Spatrick                                 const TypeSummaryOptions &options);
80061da546Spatrick 
81061da546Spatrick template <bool is_sel_ptr>
82061da546Spatrick bool ObjCSELSummaryProvider(ValueObject &valobj, Stream &stream,
83061da546Spatrick                             const TypeSummaryOptions &options);
84061da546Spatrick 
85061da546Spatrick extern template bool ObjCSELSummaryProvider<true>(ValueObject &, Stream &,
86061da546Spatrick                                                   const TypeSummaryOptions &);
87061da546Spatrick 
88061da546Spatrick extern template bool ObjCSELSummaryProvider<false>(ValueObject &, Stream &,
89061da546Spatrick                                                    const TypeSummaryOptions &);
90061da546Spatrick 
91061da546Spatrick bool NSError_SummaryProvider(ValueObject &valobj, Stream &stream,
92061da546Spatrick                              const TypeSummaryOptions &options);
93061da546Spatrick 
94061da546Spatrick bool NSException_SummaryProvider(ValueObject &valobj, Stream &stream,
95061da546Spatrick                                  const TypeSummaryOptions &options);
96061da546Spatrick 
97061da546Spatrick SyntheticChildrenFrontEnd *
98061da546Spatrick NSErrorSyntheticFrontEndCreator(CXXSyntheticChildren *,
99061da546Spatrick                                 lldb::ValueObjectSP valobj_sp);
100061da546Spatrick 
101061da546Spatrick SyntheticChildrenFrontEnd *
102061da546Spatrick NSExceptionSyntheticFrontEndCreator(CXXSyntheticChildren *,
103061da546Spatrick                                     lldb::ValueObjectSP valobj_sp);
104061da546Spatrick 
105061da546Spatrick class NSArray_Additionals {
106061da546Spatrick public:
107061da546Spatrick   static std::map<ConstString, CXXFunctionSummaryFormat::Callback> &
108061da546Spatrick   GetAdditionalSummaries();
109061da546Spatrick 
110061da546Spatrick   static std::map<ConstString, CXXSyntheticChildren::CreateFrontEndCallback> &
111061da546Spatrick   GetAdditionalSynthetics();
112061da546Spatrick };
113061da546Spatrick } // namespace formatters
114061da546Spatrick } // namespace lldb_private
115061da546Spatrick 
116*dda28197Spatrick #endif // LLDB_SOURCE_PLUGINS_LANGUAGE_OBJC_COCOA_H
117