//===-- SBTypeSummary.h -------------------------------------------*- C++ -*-===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// #ifndef LLDB_SBTypeSummary_h_ #define LLDB_SBTypeSummary_h_ #include "lldb/API/SBDefines.h" namespace lldb { class LLDB_API SBTypeSummaryOptions { public: SBTypeSummaryOptions(); SBTypeSummaryOptions (const lldb::SBTypeSummaryOptions &rhs); SBTypeSummaryOptions (const lldb_private::TypeSummaryOptions *lldb_object_ptr); ~SBTypeSummaryOptions (); bool IsValid (); lldb::LanguageType GetLanguage (); lldb::TypeSummaryCapping GetCapping (); void SetLanguage (lldb::LanguageType); void SetCapping (lldb::TypeSummaryCapping); protected: friend class SBValue; lldb_private::TypeSummaryOptions * operator->(); const lldb_private::TypeSummaryOptions * operator->() const; lldb_private::TypeSummaryOptions * get (); lldb_private::TypeSummaryOptions & ref(); const lldb_private::TypeSummaryOptions & ref() const; void SetOptions (const lldb_private::TypeSummaryOptions *lldb_object_ptr); private: std::unique_ptr m_opaque_ap; }; class SBTypeSummary { public: SBTypeSummary(); // Native function summary formatter callback typedef bool (*FormatCallback) (SBValue, SBTypeSummaryOptions, SBStream&); static SBTypeSummary CreateWithSummaryString (const char* data, uint32_t options = 0); // see lldb::eTypeOption values static SBTypeSummary CreateWithFunctionName (const char* data, uint32_t options = 0); // see lldb::eTypeOption values static SBTypeSummary CreateWithScriptCode (const char* data, uint32_t options = 0); // see lldb::eTypeOption values static SBTypeSummary CreateWithCallback (FormatCallback cb, uint32_t options = 0, const char* description = nullptr); SBTypeSummary (const lldb::SBTypeSummary &rhs); ~SBTypeSummary (); bool IsValid() const; bool IsFunctionCode(); bool IsFunctionName(); bool IsSummaryString(); const char* GetData (); void SetSummaryString (const char* data); void SetFunctionName (const char* data); void SetFunctionCode (const char* data); uint32_t GetOptions (); void SetOptions (uint32_t); bool GetDescription (lldb::SBStream &description, lldb::DescriptionLevel description_level); lldb::SBTypeSummary & operator = (const lldb::SBTypeSummary &rhs); bool DoesPrintValue (lldb::SBValue value); bool IsEqualTo (lldb::SBTypeSummary &rhs); bool operator == (lldb::SBTypeSummary &rhs); bool operator != (lldb::SBTypeSummary &rhs); protected: friend class SBDebugger; friend class SBTypeCategory; friend class SBValue; lldb::TypeSummaryImplSP GetSP (); void SetSP (const lldb::TypeSummaryImplSP &typefilter_impl_sp); lldb::TypeSummaryImplSP m_opaque_sp; SBTypeSummary (const lldb::TypeSummaryImplSP &); bool CopyOnWrite_Impl(); bool ChangeSummaryType (bool want_script); }; } // namespace lldb #endif // LLDB_SBTypeSummary_h_