107a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch//===-- SBTypeSummary.h -------------------------------------------*- C++ -*-===// 207a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch// 307a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch// The LLVM Compiler Infrastructure 45c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// 507a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch// This file is distributed under the University of Illinois Open Source 65c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// License. See LICENSE.TXT for details. 7a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)// 8a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)//===----------------------------------------------------------------------===// 95c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 10e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)#ifndef LLDB_SBTypeSummary_h_ 11197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch#define LLDB_SBTypeSummary_h_ 12197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch 13197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch#include "lldb/API/SBDefines.h" 147242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci 1510f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch#ifndef LLDB_DISABLE_PYTHON 165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 17c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)namespace lldb { 185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 19a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) class SBTypeSummary 205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 2109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) public: 22d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 23d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) SBTypeSummary(); 247242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci 255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) static SBTypeSummary 267242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci CreateWithSummaryString (const char* data, 275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) uint32_t options = 0); // see lldb::eTypeOption values 287242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci 29f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles) static SBTypeSummary 307242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci CreateWithFunctionName (const char* data, 31e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) uint32_t options = 0); // see lldb::eTypeOption values 327242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci 335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) static SBTypeSummary 347242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci CreateWithScriptCode (const char* data, 35e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch uint32_t options = 0); // see lldb::eTypeOption values 367242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci 37e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch SBTypeSummary (const lldb::SBTypeSummary &rhs); 38e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 397242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci ~SBTypeSummary (); 40e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 417242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci bool 42e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch IsValid() const; 43e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) 44e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) bool 45c0e19a689c8ac22cdc96b291a8d33a5d3b0b34a4Torne (Richard Coles) IsFunctionCode(); 465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 475c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) bool 485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) IsFunctionName(); 497242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci 507242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci bool 517242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci IsSummaryString(); 527242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci 535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) const char* 54a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) GetData (); 555c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 56926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) void 57a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) SetSummaryString (const char* data); 58a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) 59926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) void 60926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) SetFunctionName (const char* data); 617242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci 627242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci void 63926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) SetFunctionCode (const char* data); 64926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 65e1f1df5f01594c0e62e751e4b46e779b85c2faa5Torne (Richard Coles) uint32_t 66a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) GetOptions (); 67926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 68e1f1df5f01594c0e62e751e4b46e779b85c2faa5Torne (Richard Coles) void 69e1f1df5f01594c0e62e751e4b46e779b85c2faa5Torne (Richard Coles) SetOptions (uint32_t); 70e1f1df5f01594c0e62e751e4b46e779b85c2faa5Torne (Richard Coles) 71e1f1df5f01594c0e62e751e4b46e779b85c2faa5Torne (Richard Coles) bool 72a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) GetDescription (lldb::SBStream &description, 73e1f1df5f01594c0e62e751e4b46e779b85c2faa5Torne (Richard Coles) lldb::DescriptionLevel description_level); 74f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles) 75e1f1df5f01594c0e62e751e4b46e779b85c2faa5Torne (Richard Coles) lldb::SBTypeSummary & 76e1f1df5f01594c0e62e751e4b46e779b85c2faa5Torne (Richard Coles) operator = (const lldb::SBTypeSummary &rhs); 77e1f1df5f01594c0e62e751e4b46e779b85c2faa5Torne (Richard Coles) 78e1f1df5f01594c0e62e751e4b46e779b85c2faa5Torne (Richard Coles) bool 79a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) IsEqualTo (lldb::SBTypeSummary &rhs); 80e1f1df5f01594c0e62e751e4b46e779b85c2faa5Torne (Richard Coles) 81f5f02c98d2d694be40c6182631462fff13b4a479Ben Murdoch bool 82e1f1df5f01594c0e62e751e4b46e779b85c2faa5Torne (Richard Coles) operator == (lldb::SBTypeSummary &rhs); 83e1f1df5f01594c0e62e751e4b46e779b85c2faa5Torne (Richard Coles) 84e1f1df5f01594c0e62e751e4b46e779b85c2faa5Torne (Richard Coles) bool 85e1f1df5f01594c0e62e751e4b46e779b85c2faa5Torne (Richard Coles) operator != (lldb::SBTypeSummary &rhs); 86a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) 87e1f1df5f01594c0e62e751e4b46e779b85c2faa5Torne (Richard Coles) protected: 88f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles) friend class SBDebugger; 89e1f1df5f01594c0e62e751e4b46e779b85c2faa5Torne (Richard Coles) friend class SBTypeCategory; 90926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) friend class SBValue; 91926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 92e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch lldb::TypeSummaryImplSP 93a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) GetSP (); 94926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 95e1f1df5f01594c0e62e751e4b46e779b85c2faa5Torne (Richard Coles) void 96e1f1df5f01594c0e62e751e4b46e779b85c2faa5Torne (Richard Coles) SetSP (const lldb::TypeSummaryImplSP &typefilter_impl_sp); 97e1f1df5f01594c0e62e751e4b46e779b85c2faa5Torne (Richard Coles) 98e1f1df5f01594c0e62e751e4b46e779b85c2faa5Torne (Richard Coles) lldb::TypeSummaryImplSP m_opaque_sp; 99a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) 100e1f1df5f01594c0e62e751e4b46e779b85c2faa5Torne (Richard Coles) SBTypeSummary (const lldb::TypeSummaryImplSP &); 101e1f1df5f01594c0e62e751e4b46e779b85c2faa5Torne (Richard Coles) 102e1f1df5f01594c0e62e751e4b46e779b85c2faa5Torne (Richard Coles) bool 1035c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) CopyOnWrite_Impl(); 104926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 10509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) bool 106926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) ChangeSummaryType (bool want_script); 107e1f1df5f01594c0e62e751e4b46e779b85c2faa5Torne (Richard Coles) 108926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) }; 109926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 110e1f1df5f01594c0e62e751e4b46e779b85c2faa5Torne (Richard Coles) 11109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)} // namespace lldb 112e1f1df5f01594c0e62e751e4b46e779b85c2faa5Torne (Richard Coles) 113f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)#endif // LLDB_DISABLE_PYTHON 114e1f1df5f01594c0e62e751e4b46e779b85c2faa5Torne (Richard Coles) 115926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)#endif // LLDB_SBTypeSummary_h_ 116e1f1df5f01594c0e62e751e4b46e779b85c2faa5Torne (Richard Coles)