blob: 5ab354462344de8f7102eee7c2fb3e086ba92771 [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);
Enrico Granata2094e442016-08-22 18:07:52 +000070
71 bool
72 ObjCBooleanSummaryProvider (ValueObject& valobj, Stream& stream, const TypeSummaryOptions& options);
Enrico Granata419d7912015-09-04 00:33:51 +000073
74 template <bool is_sel_ptr>
75 bool
76 ObjCSELSummaryProvider (ValueObject& valobj, Stream& stream, const TypeSummaryOptions& options);
77
78 extern template bool
79 ObjCSELSummaryProvider<true> (ValueObject&, Stream&, const TypeSummaryOptions&);
80
81 extern template bool
82 ObjCSELSummaryProvider<false> (ValueObject&, Stream&, const TypeSummaryOptions&);
83
84 bool
Enrico Granata16709ef2015-11-06 02:43:32 +000085 NSError_SummaryProvider (ValueObject& valobj, Stream& stream, const TypeSummaryOptions& options);
86
87 bool
88 NSException_SummaryProvider (ValueObject& valobj, Stream& stream, const TypeSummaryOptions& options);
89
90 SyntheticChildrenFrontEnd*
91 NSErrorSyntheticFrontEndCreator (CXXSyntheticChildren*, lldb::ValueObjectSP valobj_sp);
92
93 SyntheticChildrenFrontEnd*
94 NSExceptionSyntheticFrontEndCreator (CXXSyntheticChildren*, lldb::ValueObjectSP valobj_sp);
Enrico Granatac28b3e82016-04-11 18:46:37 +000095
96 class NSArray_Additionals
97 {
98 public:
99 static std::map<ConstString, CXXFunctionSummaryFormat::Callback>&
100 GetAdditionalSummaries ();
101
102 static std::map<ConstString, CXXSyntheticChildren::CreateFrontEndCallback>&
103 GetAdditionalSynthetics ();
104 };
Enrico Granata419d7912015-09-04 00:33:51 +0000105 } // namespace formatters
106} // namespace lldb_private
107
108#endif // liblldb_Cocoa_h_