blob: 10ff3bce3b9840b0b06d3135c0dacff9fc7685c3 [file] [log] [blame]
Kate Stoneb9c1b512016-09-06 20:57:50 +00001//===-- Cocoa.h ---------------------------------------------------*- C++
2//-*-===//
Enrico Granata419d7912015-09-04 00:33:51 +00003//
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
Enrico Granata419d7912015-09-04 00:33:51 +000014#include "lldb/Core/ValueObject.h"
15#include "lldb/DataFormatters/TypeSummary.h"
Enrico Granatac28b3e82016-04-11 18:46:37 +000016#include "lldb/DataFormatters/TypeSynthetic.h"
Enrico Granata419d7912015-09-04 00:33:51 +000017#include "lldb/Target/ObjCLanguageRuntime.h"
Zachary Turnerbf9a7732017-02-02 21:39:50 +000018#include "lldb/Utility/Stream.h"
Enrico Granata419d7912015-09-04 00:33:51 +000019
20namespace lldb_private {
Kate Stoneb9c1b512016-09-06 20:57:50 +000021namespace formatters {
22bool NSIndexSetSummaryProvider(ValueObject &valobj, Stream &stream,
23 const TypeSummaryOptions &options);
Enrico Granata2094e442016-08-22 18:07:52 +000024
Kate Stoneb9c1b512016-09-06 20:57:50 +000025bool NSArraySummaryProvider(ValueObject &valobj, Stream &stream,
26 const TypeSummaryOptions &options);
27
28template <bool needs_at>
29bool NSDataSummaryProvider(ValueObject &valobj, Stream &stream,
30 const TypeSummaryOptions &options);
31
32bool NSNumberSummaryProvider(ValueObject &valobj, Stream &stream,
33 const TypeSummaryOptions &options);
34
35bool NSNotificationSummaryProvider(ValueObject &valobj, Stream &stream,
36 const TypeSummaryOptions &options);
37
38bool NSTimeZoneSummaryProvider(ValueObject &valobj, Stream &stream,
39 const TypeSummaryOptions &options);
40
41bool NSMachPortSummaryProvider(ValueObject &valobj, Stream &stream,
42 const TypeSummaryOptions &options);
43
44bool NSDateSummaryProvider(ValueObject &valobj, Stream &stream,
45 const TypeSummaryOptions &options);
46
47bool NSBundleSummaryProvider(ValueObject &valobj, Stream &stream,
48 const TypeSummaryOptions &options);
49
50bool NSURLSummaryProvider(ValueObject &valobj, Stream &stream,
51 const TypeSummaryOptions &options);
52
53extern template bool NSDataSummaryProvider<true>(ValueObject &, Stream &,
54 const TypeSummaryOptions &);
55
56extern template bool NSDataSummaryProvider<false>(ValueObject &, Stream &,
57 const TypeSummaryOptions &);
58
59SyntheticChildrenFrontEnd *
60NSArraySyntheticFrontEndCreator(CXXSyntheticChildren *, lldb::ValueObjectSP);
61
62SyntheticChildrenFrontEnd *
63NSIndexPathSyntheticFrontEndCreator(CXXSyntheticChildren *,
64 lldb::ValueObjectSP);
65
66bool ObjCClassSummaryProvider(ValueObject &valobj, Stream &stream,
67 const TypeSummaryOptions &options);
68
69SyntheticChildrenFrontEnd *
70ObjCClassSyntheticFrontEndCreator(CXXSyntheticChildren *, lldb::ValueObjectSP);
71
72bool ObjCBOOLSummaryProvider(ValueObject &valobj, Stream &stream,
73 const TypeSummaryOptions &options);
74
75bool ObjCBooleanSummaryProvider(ValueObject &valobj, Stream &stream,
76 const TypeSummaryOptions &options);
77
78template <bool is_sel_ptr>
79bool ObjCSELSummaryProvider(ValueObject &valobj, Stream &stream,
80 const TypeSummaryOptions &options);
81
82extern template bool ObjCSELSummaryProvider<true>(ValueObject &, Stream &,
83 const TypeSummaryOptions &);
84
85extern template bool ObjCSELSummaryProvider<false>(ValueObject &, Stream &,
86 const TypeSummaryOptions &);
87
88bool NSError_SummaryProvider(ValueObject &valobj, Stream &stream,
89 const TypeSummaryOptions &options);
90
91bool NSException_SummaryProvider(ValueObject &valobj, Stream &stream,
92 const TypeSummaryOptions &options);
93
94SyntheticChildrenFrontEnd *
95NSErrorSyntheticFrontEndCreator(CXXSyntheticChildren *,
96 lldb::ValueObjectSP valobj_sp);
97
98SyntheticChildrenFrontEnd *
99NSExceptionSyntheticFrontEndCreator(CXXSyntheticChildren *,
100 lldb::ValueObjectSP valobj_sp);
101
102class NSArray_Additionals {
103public:
104 static std::map<ConstString, CXXFunctionSummaryFormat::Callback> &
105 GetAdditionalSummaries();
106
107 static std::map<ConstString, CXXSyntheticChildren::CreateFrontEndCallback> &
108 GetAdditionalSynthetics();
109};
110} // namespace formatters
Enrico Granata419d7912015-09-04 00:33:51 +0000111} // namespace lldb_private
112
113#endif // liblldb_Cocoa_h_