Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/contrib/llvm-project/lldb/source/Plugins/Language/ObjC/Cocoa.h
39642 views
1
//===-- Cocoa.h ---------------------------------------------------*- C++
2
//-*-===//
3
//
4
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5
// See https://llvm.org/LICENSE.txt for license information.
6
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7
//
8
//===----------------------------------------------------------------------===//
9
10
#ifndef LLDB_SOURCE_PLUGINS_LANGUAGE_OBJC_COCOA_H
11
#define LLDB_SOURCE_PLUGINS_LANGUAGE_OBJC_COCOA_H
12
13
#include "lldb/Core/ValueObject.h"
14
#include "lldb/DataFormatters/TypeSummary.h"
15
#include "lldb/DataFormatters/TypeSynthetic.h"
16
#include "lldb/Utility/Stream.h"
17
18
#include "Plugins/LanguageRuntime/ObjC/ObjCLanguageRuntime.h"
19
20
namespace lldb_private {
21
namespace formatters {
22
bool NSIndexSetSummaryProvider(ValueObject &valobj, Stream &stream,
23
const TypeSummaryOptions &options);
24
25
bool NSArraySummaryProvider(ValueObject &valobj, Stream &stream,
26
const TypeSummaryOptions &options);
27
28
template <bool needs_at>
29
bool NSDataSummaryProvider(ValueObject &valobj, Stream &stream,
30
const TypeSummaryOptions &options);
31
32
bool NSNumberSummaryProvider(ValueObject &valobj, Stream &stream,
33
const TypeSummaryOptions &options);
34
35
bool NSDecimalNumberSummaryProvider(ValueObject &valobj, Stream &stream,
36
const TypeSummaryOptions &options);
37
38
bool NSNotificationSummaryProvider(ValueObject &valobj, Stream &stream,
39
const TypeSummaryOptions &options);
40
41
bool NSTimeZoneSummaryProvider(ValueObject &valobj, Stream &stream,
42
const TypeSummaryOptions &options);
43
44
bool NSMachPortSummaryProvider(ValueObject &valobj, Stream &stream,
45
const TypeSummaryOptions &options);
46
47
bool NSDateSummaryProvider(ValueObject &valobj, Stream &stream,
48
const TypeSummaryOptions &options);
49
50
bool NSBundleSummaryProvider(ValueObject &valobj, Stream &stream,
51
const TypeSummaryOptions &options);
52
53
bool NSURLSummaryProvider(ValueObject &valobj, Stream &stream,
54
const TypeSummaryOptions &options);
55
56
extern template bool NSDataSummaryProvider<true>(ValueObject &, Stream &,
57
const TypeSummaryOptions &);
58
59
extern template bool NSDataSummaryProvider<false>(ValueObject &, Stream &,
60
const TypeSummaryOptions &);
61
62
SyntheticChildrenFrontEnd *
63
NSArraySyntheticFrontEndCreator(CXXSyntheticChildren *, lldb::ValueObjectSP);
64
65
SyntheticChildrenFrontEnd *
66
NSIndexPathSyntheticFrontEndCreator(CXXSyntheticChildren *,
67
lldb::ValueObjectSP);
68
69
bool ObjCClassSummaryProvider(ValueObject &valobj, Stream &stream,
70
const TypeSummaryOptions &options);
71
72
SyntheticChildrenFrontEnd *
73
ObjCClassSyntheticFrontEndCreator(CXXSyntheticChildren *, lldb::ValueObjectSP);
74
75
bool ObjCBOOLSummaryProvider(ValueObject &valobj, Stream &stream,
76
const TypeSummaryOptions &options);
77
78
bool ObjCBooleanSummaryProvider(ValueObject &valobj, Stream &stream,
79
const TypeSummaryOptions &options);
80
81
template <bool is_sel_ptr>
82
bool ObjCSELSummaryProvider(ValueObject &valobj, Stream &stream,
83
const TypeSummaryOptions &options);
84
85
extern template bool ObjCSELSummaryProvider<true>(ValueObject &, Stream &,
86
const TypeSummaryOptions &);
87
88
extern template bool ObjCSELSummaryProvider<false>(ValueObject &, Stream &,
89
const TypeSummaryOptions &);
90
91
bool NSError_SummaryProvider(ValueObject &valobj, Stream &stream,
92
const TypeSummaryOptions &options);
93
94
bool NSException_SummaryProvider(ValueObject &valobj, Stream &stream,
95
const TypeSummaryOptions &options);
96
97
SyntheticChildrenFrontEnd *
98
NSErrorSyntheticFrontEndCreator(CXXSyntheticChildren *,
99
lldb::ValueObjectSP valobj_sp);
100
101
SyntheticChildrenFrontEnd *
102
NSExceptionSyntheticFrontEndCreator(CXXSyntheticChildren *,
103
lldb::ValueObjectSP valobj_sp);
104
105
class NSArray_Additionals {
106
public:
107
static std::map<ConstString, CXXFunctionSummaryFormat::Callback> &
108
GetAdditionalSummaries();
109
110
static std::map<ConstString, CXXSyntheticChildren::CreateFrontEndCallback> &
111
GetAdditionalSynthetics();
112
};
113
} // namespace formatters
114
} // namespace lldb_private
115
116
#endif // LLDB_SOURCE_PLUGINS_LANGUAGE_OBJC_COCOA_H
117
118