116376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata//===-- SBTypeSynthetic.h -----------------------------------------*- C++ -*-===// 216376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata// 316376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata// The LLVM Compiler Infrastructure 416376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata// 516376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata// This file is distributed under the University of Illinois Open Source 616376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata// License. See LICENSE.TXT for details. 716376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata// 816376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata//===----------------------------------------------------------------------===// 916376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 1016376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata#ifndef LLDB_SBTypeSynthetic_h_ 1116376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata#define LLDB_SBTypeSynthetic_h_ 1216376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 1316376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata#include "lldb/API/SBDefines.h" 1416376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 15c48ca82920bd333c7ccb6ec0e579207add130296Jason Molenda#ifndef LLDB_DISABLE_PYTHON 16c48ca82920bd333c7ccb6ec0e579207add130296Jason Molenda 1716376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granatanamespace lldb { 1816376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 1916376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata class SBTypeSynthetic 2016376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata { 2116376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata public: 2216376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 2316376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata SBTypeSynthetic(); 2416376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 2516376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata static SBTypeSynthetic 2616376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata CreateWithClassName (const char* data, 2716376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata uint32_t options = 0); // see lldb::eTypeOption values 2816376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 2916376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata static SBTypeSynthetic 3016376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata CreateWithScriptCode (const char* data, 3116376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata uint32_t options = 0); // see lldb::eTypeOption values 3216376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 3316376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata SBTypeSynthetic (const lldb::SBTypeSynthetic &rhs); 3416376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 3516376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata ~SBTypeSynthetic (); 3616376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 3716376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata bool 3816376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata IsValid() const; 3916376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 4016376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata bool 4116376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata IsClassCode(); 4216376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 4316376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata bool 4416376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata IsClassName(); 4516376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 4616376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata const char* 4716376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata GetData (); 4816376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 4916376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata void 5016376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata SetClassName (const char* data); 5116376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 5216376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata void 5316376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata SetClassCode (const char* data); 5416376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 5516376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata uint32_t 5616376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata GetOptions (); 5716376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 5816376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata void 5916376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata SetOptions (uint32_t); 6016376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 6116376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata bool 6216376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata GetDescription (lldb::SBStream &description, 6316376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata lldb::DescriptionLevel description_level); 6416376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 6516376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata lldb::SBTypeSynthetic & 6616376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata operator = (const lldb::SBTypeSynthetic &rhs); 6716376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 6816376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata bool 6916376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata IsEqualTo (lldb::SBTypeSynthetic &rhs); 7016376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 7116376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata bool 7216376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata operator == (lldb::SBTypeSynthetic &rhs); 7316376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 7416376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata bool 7516376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata operator != (lldb::SBTypeSynthetic &rhs); 7616376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 7716376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata protected: 7816376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata friend class SBDebugger; 7916376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata friend class SBTypeCategory; 80d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata friend class SBValue; 8116376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 82f509c5ec066599a3399fced39ea36996184939e8Enrico Granata lldb::ScriptedSyntheticChildrenSP 8316376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata GetSP (); 8416376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 8516376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata void 86f509c5ec066599a3399fced39ea36996184939e8Enrico Granata SetSP (const lldb::ScriptedSyntheticChildrenSP &typefilter_impl_sp); 8716376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 88f509c5ec066599a3399fced39ea36996184939e8Enrico Granata lldb::ScriptedSyntheticChildrenSP m_opaque_sp; 8916376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 90f509c5ec066599a3399fced39ea36996184939e8Enrico Granata SBTypeSynthetic (const lldb::ScriptedSyntheticChildrenSP &); 9116376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 9216376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata bool 9316376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata CopyOnWrite_Impl(); 9416376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 9516376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata }; 9616376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 9716376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 9816376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata} // namespace lldb 9916376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 100c48ca82920bd333c7ccb6ec0e579207add130296Jason Molenda#endif // LLDB_DISABLE_PYTHON 101c48ca82920bd333c7ccb6ec0e579207add130296Jason Molenda 10216376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata#endif // LLDB_SBTypeSynthetic_h_ 103