1292932Sdim//===-- Cocoa.h ---------------------------------------------------*- C++ -*-===//
2292932Sdim//
3292932Sdim//                     The LLVM Compiler Infrastructure
4292932Sdim//
5292932Sdim// This file is distributed under the University of Illinois Open Source
6292932Sdim// License. See LICENSE.TXT for details.
7292932Sdim//
8292932Sdim//===----------------------------------------------------------------------===//
9292932Sdim
10292932Sdim#ifndef liblldb_Cocoa_h_
11292932Sdim#define liblldb_Cocoa_h_
12292932Sdim
13292932Sdim#include "lldb/Core/Stream.h"
14292932Sdim#include "lldb/Core/ValueObject.h"
15292932Sdim#include "lldb/DataFormatters/TypeSummary.h"
16292932Sdim#include "lldb/Target/ObjCLanguageRuntime.h"
17292932Sdim
18292932Sdimnamespace lldb_private {
19292932Sdim    namespace formatters
20292932Sdim    {
21292932Sdim        bool
22292932Sdim        NSIndexSetSummaryProvider (ValueObject& valobj, Stream& stream, const TypeSummaryOptions& options);
23292932Sdim
24292932Sdim        bool
25292932Sdim        NSArraySummaryProvider (ValueObject& valobj, Stream& stream, const TypeSummaryOptions& options);
26292932Sdim
27292932Sdim        template<bool needs_at>
28292932Sdim        bool
29292932Sdim        NSDataSummaryProvider (ValueObject& valobj, Stream& stream, const TypeSummaryOptions& options);
30292932Sdim
31292932Sdim        bool
32292932Sdim        NSNumberSummaryProvider (ValueObject& valobj, Stream& stream, const TypeSummaryOptions& options);
33292932Sdim
34292932Sdim        bool
35292932Sdim        NSNotificationSummaryProvider (ValueObject& valobj, Stream& stream, const TypeSummaryOptions& options);
36292932Sdim
37292932Sdim        bool
38292932Sdim        NSTimeZoneSummaryProvider (ValueObject& valobj, Stream& stream, const TypeSummaryOptions& options);
39292932Sdim
40292932Sdim        bool
41292932Sdim        NSMachPortSummaryProvider (ValueObject& valobj, Stream& stream, const TypeSummaryOptions& options);
42292932Sdim
43292932Sdim        bool
44292932Sdim        NSDateSummaryProvider (ValueObject& valobj, Stream& stream, const TypeSummaryOptions& options);
45292932Sdim
46292932Sdim        bool
47292932Sdim        NSBundleSummaryProvider (ValueObject& valobj, Stream& stream, const TypeSummaryOptions& options);
48292932Sdim
49292932Sdim        bool
50292932Sdim        NSURLSummaryProvider (ValueObject& valobj, Stream& stream, const TypeSummaryOptions& options);
51292932Sdim
52292932Sdim        extern template bool
53292932Sdim        NSDataSummaryProvider<true> (ValueObject&, Stream&, const TypeSummaryOptions&) ;
54292932Sdim
55292932Sdim        extern template bool
56292932Sdim        NSDataSummaryProvider<false> (ValueObject&, Stream&, const TypeSummaryOptions&) ;
57292932Sdim
58292932Sdim        SyntheticChildrenFrontEnd* NSArraySyntheticFrontEndCreator (CXXSyntheticChildren*, lldb::ValueObjectSP);
59292932Sdim
60292932Sdim        SyntheticChildrenFrontEnd* NSIndexPathSyntheticFrontEndCreator (CXXSyntheticChildren*, lldb::ValueObjectSP);
61292932Sdim
62292932Sdim        bool
63292932Sdim        ObjCClassSummaryProvider (ValueObject& valobj, Stream& stream, const TypeSummaryOptions& options);
64292932Sdim
65292932Sdim        SyntheticChildrenFrontEnd* ObjCClassSyntheticFrontEndCreator (CXXSyntheticChildren*, lldb::ValueObjectSP);
66292932Sdim
67292932Sdim        bool
68292932Sdim        ObjCBOOLSummaryProvider (ValueObject& valobj, Stream& stream, const TypeSummaryOptions& options);
69292932Sdim
70292932Sdim        template <bool is_sel_ptr>
71292932Sdim        bool
72292932Sdim        ObjCSELSummaryProvider (ValueObject& valobj, Stream& stream, const TypeSummaryOptions& options);
73292932Sdim
74292932Sdim        extern template bool
75292932Sdim        ObjCSELSummaryProvider<true> (ValueObject&, Stream&, const TypeSummaryOptions&);
76292932Sdim
77292932Sdim        extern template bool
78292932Sdim        ObjCSELSummaryProvider<false> (ValueObject&, Stream&, const TypeSummaryOptions&);
79292932Sdim
80292932Sdim        bool
81292932Sdim        RuntimeSpecificDescriptionSummaryProvider (ValueObject& valobj, Stream& stream, const TypeSummaryOptions& options);
82292932Sdim
83292932Sdim        bool
84292932Sdim        NSError_SummaryProvider (ValueObject& valobj, Stream& stream, const TypeSummaryOptions& options);
85292932Sdim
86292932Sdim        bool
87292932Sdim        NSException_SummaryProvider (ValueObject& valobj, Stream& stream, const TypeSummaryOptions& options);
88292932Sdim
89292932Sdim        SyntheticChildrenFrontEnd*
90292932Sdim        NSErrorSyntheticFrontEndCreator (CXXSyntheticChildren*, lldb::ValueObjectSP valobj_sp);
91292932Sdim
92292932Sdim        SyntheticChildrenFrontEnd*
93292932Sdim        NSExceptionSyntheticFrontEndCreator (CXXSyntheticChildren*, lldb::ValueObjectSP valobj_sp);
94292932Sdim    } // namespace formatters
95292932Sdim} // namespace lldb_private
96292932Sdim
97292932Sdim#endif // liblldb_Cocoa_h_
98