117 lines · c
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-exception7//8//===----------------------------------------------------------------------===//9 10#ifndef LLDB_SOURCE_PLUGINS_LANGUAGE_OBJC_COCOA_H11#define LLDB_SOURCE_PLUGINS_LANGUAGE_OBJC_COCOA_H12 13#include "lldb/DataFormatters/TypeSummary.h"14#include "lldb/DataFormatters/TypeSynthetic.h"15#include "lldb/Utility/Stream.h"16#include "lldb/ValueObject/ValueObject.h"17 18#include "Plugins/LanguageRuntime/ObjC/ObjCLanguageRuntime.h"19 20namespace lldb_private {21namespace formatters {22bool NSIndexSetSummaryProvider(ValueObject &valobj, Stream &stream,23 const TypeSummaryOptions &options);24 25bool 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 NSDecimalNumberSummaryProvider(ValueObject &valobj, Stream &stream,36 const TypeSummaryOptions &options);37 38bool NSNotificationSummaryProvider(ValueObject &valobj, Stream &stream,39 const TypeSummaryOptions &options);40 41bool NSTimeZoneSummaryProvider(ValueObject &valobj, Stream &stream,42 const TypeSummaryOptions &options);43 44bool NSMachPortSummaryProvider(ValueObject &valobj, Stream &stream,45 const TypeSummaryOptions &options);46 47bool NSDateSummaryProvider(ValueObject &valobj, Stream &stream,48 const TypeSummaryOptions &options);49 50bool NSBundleSummaryProvider(ValueObject &valobj, Stream &stream,51 const TypeSummaryOptions &options);52 53bool NSURLSummaryProvider(ValueObject &valobj, Stream &stream,54 const TypeSummaryOptions &options);55 56extern template bool NSDataSummaryProvider<true>(ValueObject &, Stream &,57 const TypeSummaryOptions &);58 59extern template bool NSDataSummaryProvider<false>(ValueObject &, Stream &,60 const TypeSummaryOptions &);61 62SyntheticChildrenFrontEnd *63NSArraySyntheticFrontEndCreator(CXXSyntheticChildren *, lldb::ValueObjectSP);64 65SyntheticChildrenFrontEnd *66NSIndexPathSyntheticFrontEndCreator(CXXSyntheticChildren *,67 lldb::ValueObjectSP);68 69bool ObjCClassSummaryProvider(ValueObject &valobj, Stream &stream,70 const TypeSummaryOptions &options);71 72SyntheticChildrenFrontEnd *73ObjCClassSyntheticFrontEndCreator(CXXSyntheticChildren *, lldb::ValueObjectSP);74 75bool ObjCBOOLSummaryProvider(ValueObject &valobj, Stream &stream,76 const TypeSummaryOptions &options);77 78bool ObjCBooleanSummaryProvider(ValueObject &valobj, Stream &stream,79 const TypeSummaryOptions &options);80 81template <bool is_sel_ptr>82bool ObjCSELSummaryProvider(ValueObject &valobj, Stream &stream,83 const TypeSummaryOptions &options);84 85extern template bool ObjCSELSummaryProvider<true>(ValueObject &, Stream &,86 const TypeSummaryOptions &);87 88extern template bool ObjCSELSummaryProvider<false>(ValueObject &, Stream &,89 const TypeSummaryOptions &);90 91bool NSError_SummaryProvider(ValueObject &valobj, Stream &stream,92 const TypeSummaryOptions &options);93 94bool NSException_SummaryProvider(ValueObject &valobj, Stream &stream,95 const TypeSummaryOptions &options);96 97SyntheticChildrenFrontEnd *98NSErrorSyntheticFrontEndCreator(CXXSyntheticChildren *,99 lldb::ValueObjectSP valobj_sp);100 101SyntheticChildrenFrontEnd *102NSExceptionSyntheticFrontEndCreator(CXXSyntheticChildren *,103 lldb::ValueObjectSP valobj_sp);104 105class NSArray_Additionals {106public:107 static std::map<ConstString, CXXFunctionSummaryFormat::Callback> &108 GetAdditionalSummaries();109 110 static std::map<ConstString, CXXSyntheticChildren::CreateFrontEndCallback> &111 GetAdditionalSynthetics();112};113} // namespace formatters114} // namespace lldb_private115 116#endif // LLDB_SOURCE_PLUGINS_LANGUAGE_OBJC_COCOA_H117