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