1 //===-- SBTypeSynthetic.h -----------------------------------------*- C++ 2 //-*-===// 3 // 4 // The LLVM Compiler Infrastructure 5 // 6 // This file is distributed under the University of Illinois Open Source 7 // License. See LICENSE.TXT for details. 8 // 9 //===----------------------------------------------------------------------===// 10 11 #ifndef LLDB_SBTypeSynthetic_h_ 12 #define LLDB_SBTypeSynthetic_h_ 13 14 #include "lldb/API/SBDefines.h" 15 16 #ifndef LLDB_DISABLE_PYTHON 17 18 namespace lldb { 19 20 class LLDB_API SBTypeSynthetic { 21 public: 22 SBTypeSynthetic(); 23 24 static SBTypeSynthetic 25 CreateWithClassName(const char *data, 26 uint32_t options = 0); // see lldb::eTypeOption values 27 28 static SBTypeSynthetic 29 CreateWithScriptCode(const char *data, 30 uint32_t options = 0); // see lldb::eTypeOption values 31 32 SBTypeSynthetic(const lldb::SBTypeSynthetic &rhs); 33 34 ~SBTypeSynthetic(); 35 36 bool IsValid() const; 37 38 bool IsClassCode(); 39 40 bool IsClassName(); 41 42 const char *GetData(); 43 44 void SetClassName(const char *data); 45 46 void SetClassCode(const char *data); 47 48 uint32_t GetOptions(); 49 50 void SetOptions(uint32_t); 51 52 bool GetDescription(lldb::SBStream &description, 53 lldb::DescriptionLevel description_level); 54 55 lldb::SBTypeSynthetic &operator=(const lldb::SBTypeSynthetic &rhs); 56 57 bool IsEqualTo(lldb::SBTypeSynthetic &rhs); 58 59 bool operator==(lldb::SBTypeSynthetic &rhs); 60 61 bool operator!=(lldb::SBTypeSynthetic &rhs); 62 63 protected: 64 friend class SBDebugger; 65 friend class SBTypeCategory; 66 friend class SBValue; 67 68 lldb::ScriptedSyntheticChildrenSP GetSP(); 69 70 void SetSP(const lldb::ScriptedSyntheticChildrenSP &typefilter_impl_sp); 71 72 lldb::ScriptedSyntheticChildrenSP m_opaque_sp; 73 74 SBTypeSynthetic(const lldb::ScriptedSyntheticChildrenSP &); 75 76 bool CopyOnWrite_Impl(); 77 }; 78 79 } // namespace lldb 80 81 #endif // LLDB_DISABLE_PYTHON 82 83 #endif // LLDB_SBTypeSynthetic_h_ 84