blob: f43b1639cb389f1092d822fbcc890f64500a4e72 [file] [log] [blame]
Enrico Granata419d7912015-09-04 00:33:51 +00001//===-- Cocoa.h ---------------------------------------------------*- C++ -*-===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10#ifndef liblldb_Cocoa_h_
11#define liblldb_Cocoa_h_
12
13#include "lldb/Core/Stream.h"
14#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"
18
19namespace lldb_private {
20 namespace formatters
21 {
Enrico Granata419d7912015-09-04 00:33:51 +000022 bool
23 NSIndexSetSummaryProvider (ValueObject& valobj, Stream& stream, const TypeSummaryOptions& options);
24
25 bool
26 NSArraySummaryProvider (ValueObject& valobj, Stream& stream, const TypeSummaryOptions& options);
27
Enrico Granata419d7912015-09-04 00:33:51 +000028 template<bool needs_at>
29 bool
30 NSDataSummaryProvider (ValueObject& valobj, Stream& stream, const TypeSummaryOptions& options);
31
32 bool
33 NSNumberSummaryProvider (ValueObject& valobj, Stream& stream, const TypeSummaryOptions& options);
34
35 bool
36 NSNotificationSummaryProvider (ValueObject& valobj, Stream& stream, const TypeSummaryOptions& options);
37
38 bool
39 NSTimeZoneSummaryProvider (ValueObject& valobj, Stream& stream, const TypeSummaryOptions& options);
40
41 bool
42 NSMachPortSummaryProvider (ValueObject& valobj, Stream& stream, const TypeSummaryOptions& options);
43
44 bool
45 NSDateSummaryProvider (ValueObject& valobj, Stream& stream, const TypeSummaryOptions& options);
46
47 bool
48 NSBundleSummaryProvider (ValueObject& valobj, Stream& stream, const TypeSummaryOptions& options);
49
50 bool
Enrico Granata419d7912015-09-04 00:33:51 +000051 NSURLSummaryProvider (ValueObject& valobj, Stream& stream, const TypeSummaryOptions& options);
52
53 extern template bool
Enrico Granata419d7912015-09-04 00:33:51 +000054 NSDataSummaryProvider<true> (ValueObject&, Stream&, const TypeSummaryOptions&) ;
55
56 extern template bool
57 NSDataSummaryProvider<false> (ValueObject&, Stream&, const TypeSummaryOptions&) ;
58
59 SyntheticChildrenFrontEnd* NSArraySyntheticFrontEndCreator (CXXSyntheticChildren*, lldb::ValueObjectSP);
60
Enrico Granata419d7912015-09-04 00:33:51 +000061 SyntheticChildrenFrontEnd* NSIndexPathSyntheticFrontEndCreator (CXXSyntheticChildren*, lldb::ValueObjectSP);
62
63 bool
64 ObjCClassSummaryProvider (ValueObject& valobj, Stream& stream, const TypeSummaryOptions& options);
65
66 SyntheticChildrenFrontEnd* ObjCClassSyntheticFrontEndCreator (CXXSyntheticChildren*, lldb::ValueObjectSP);
67
68 bool
69 ObjCBOOLSummaryProvider (ValueObject& valobj, Stream& stream, const TypeSummaryOptions& options);
70
71 template <bool is_sel_ptr>
72 bool
73 ObjCSELSummaryProvider (ValueObject& valobj, Stream& stream, const TypeSummaryOptions& options);
74
75 extern template bool
76 ObjCSELSummaryProvider<true> (ValueObject&, Stream&, const TypeSummaryOptions&);
77
78 extern template bool
79 ObjCSELSummaryProvider<false> (ValueObject&, Stream&, const TypeSummaryOptions&);
80
81 bool
Enrico Granata16709ef2015-11-06 02:43:32 +000082 NSError_SummaryProvider (ValueObject& valobj, Stream& stream, const TypeSummaryOptions& options);
83
84 bool
85 NSException_SummaryProvider (ValueObject& valobj, Stream& stream, const TypeSummaryOptions& options);
86
87 SyntheticChildrenFrontEnd*
88 NSErrorSyntheticFrontEndCreator (CXXSyntheticChildren*, lldb::ValueObjectSP valobj_sp);
89
90 SyntheticChildrenFrontEnd*
91 NSExceptionSyntheticFrontEndCreator (CXXSyntheticChildren*, lldb::ValueObjectSP valobj_sp);
Enrico Granatac28b3e82016-04-11 18:46:37 +000092
93 class NSArray_Additionals
94 {
95 public:
96 static std::map<ConstString, CXXFunctionSummaryFormat::Callback>&
97 GetAdditionalSummaries ();
98
99 static std::map<ConstString, CXXSyntheticChildren::CreateFrontEndCallback>&
100 GetAdditionalSynthetics ();
101 };
Enrico Granata419d7912015-09-04 00:33:51 +0000102 } // namespace formatters
103} // namespace lldb_private
104
105#endif // liblldb_Cocoa_h_