10b57cec5SDimitry Andric //===-- LibStdcpp.h ---------------------------------------------*- C++ -*-===// 20b57cec5SDimitry Andric // 30b57cec5SDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 40b57cec5SDimitry Andric // See https://llvm.org/LICENSE.txt for license information. 50b57cec5SDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 60b57cec5SDimitry Andric // 70b57cec5SDimitry Andric //===----------------------------------------------------------------------===// 80b57cec5SDimitry Andric 95ffd83dbSDimitry Andric #ifndef LLDB_SOURCE_PLUGINS_LANGUAGE_CPLUSPLUS_LIBSTDCPP_H 105ffd83dbSDimitry Andric #define LLDB_SOURCE_PLUGINS_LANGUAGE_CPLUSPLUS_LIBSTDCPP_H 110b57cec5SDimitry Andric 120b57cec5SDimitry Andric #include "lldb/Core/ValueObject.h" 130b57cec5SDimitry Andric #include "lldb/DataFormatters/TypeSummary.h" 140b57cec5SDimitry Andric #include "lldb/DataFormatters/TypeSynthetic.h" 150b57cec5SDimitry Andric #include "lldb/Utility/Stream.h" 160b57cec5SDimitry Andric 170b57cec5SDimitry Andric namespace lldb_private { 180b57cec5SDimitry Andric namespace formatters { 190b57cec5SDimitry Andric bool LibStdcppStringSummaryProvider( 200b57cec5SDimitry Andric ValueObject &valobj, Stream &stream, 210b57cec5SDimitry Andric const TypeSummaryOptions &options); // libcstdc++ c++11 std::string 220b57cec5SDimitry Andric 230b57cec5SDimitry Andric bool LibStdcppWStringSummaryProvider( 240b57cec5SDimitry Andric ValueObject &valobj, Stream &stream, 250b57cec5SDimitry Andric const TypeSummaryOptions &options); // libcstdc++ c++11 std::wstring 260b57cec5SDimitry Andric 270b57cec5SDimitry Andric bool LibStdcppSmartPointerSummaryProvider( 280b57cec5SDimitry Andric ValueObject &valobj, Stream &stream, 290b57cec5SDimitry Andric const TypeSummaryOptions 300b57cec5SDimitry Andric &options); // libstdc++ std::shared_ptr<> and std::weak_ptr<> 310b57cec5SDimitry Andric 320b57cec5SDimitry Andric bool LibStdcppUniquePointerSummaryProvider( 330b57cec5SDimitry Andric ValueObject &valobj, Stream &stream, 340b57cec5SDimitry Andric const TypeSummaryOptions &options); // libstdc++ std::unique_ptr<> 350b57cec5SDimitry Andric 360b57cec5SDimitry Andric SyntheticChildrenFrontEnd * 370b57cec5SDimitry Andric LibstdcppMapIteratorSyntheticFrontEndCreator(CXXSyntheticChildren *, 380b57cec5SDimitry Andric lldb::ValueObjectSP); 390b57cec5SDimitry Andric 400b57cec5SDimitry Andric SyntheticChildrenFrontEnd * 410b57cec5SDimitry Andric LibStdcppTupleSyntheticFrontEndCreator(CXXSyntheticChildren *, 420b57cec5SDimitry Andric lldb::ValueObjectSP); 430b57cec5SDimitry Andric 440b57cec5SDimitry Andric SyntheticChildrenFrontEnd * 45349cc55cSDimitry Andric LibStdcppBitsetSyntheticFrontEndCreator(CXXSyntheticChildren *, 46349cc55cSDimitry Andric lldb::ValueObjectSP); 47349cc55cSDimitry Andric 48349cc55cSDimitry Andric SyntheticChildrenFrontEnd * 49*0eae32dcSDimitry Andric LibStdcppOptionalSyntheticFrontEndCreator(CXXSyntheticChildren *, 50*0eae32dcSDimitry Andric lldb::ValueObjectSP); 51*0eae32dcSDimitry Andric 52*0eae32dcSDimitry Andric SyntheticChildrenFrontEnd * 530b57cec5SDimitry Andric LibStdcppVectorIteratorSyntheticFrontEndCreator(CXXSyntheticChildren *, 540b57cec5SDimitry Andric lldb::ValueObjectSP); 550b57cec5SDimitry Andric 560b57cec5SDimitry Andric SyntheticChildrenFrontEnd * 570b57cec5SDimitry Andric LibStdcppSharedPtrSyntheticFrontEndCreator(CXXSyntheticChildren *, 580b57cec5SDimitry Andric lldb::ValueObjectSP); 590b57cec5SDimitry Andric 600b57cec5SDimitry Andric SyntheticChildrenFrontEnd * 610b57cec5SDimitry Andric LibStdcppUniquePtrSyntheticFrontEndCreator(CXXSyntheticChildren *, 620b57cec5SDimitry Andric lldb::ValueObjectSP); 630b57cec5SDimitry Andric 640b57cec5SDimitry Andric } // namespace formatters 650b57cec5SDimitry Andric } // namespace lldb_private 660b57cec5SDimitry Andric 675ffd83dbSDimitry Andric #endif // LLDB_SOURCE_PLUGINS_LANGUAGE_CPLUSPLUS_LIBSTDCPP_H 68