1 //===-- SBTypeSynthetic.h -----------------------------------------*- C++
4 // The LLVM Compiler Infrastructure
6 // This file is distributed under the University of Illinois Open Source
7 // License. See LICENSE.TXT for details.
9 //===----------------------------------------------------------------------===//
11 #ifndef LLDB_SBTypeSynthetic_h_
12 #define LLDB_SBTypeSynthetic_h_
14 #include "lldb/API/SBDefines.h"
16 #ifndef LLDB_DISABLE_PYTHON
20 class LLDB_API SBTypeSynthetic {
24 static SBTypeSynthetic
25 CreateWithClassName(const char *data,
26 uint32_t options = 0); // see lldb::eTypeOption values
28 static SBTypeSynthetic
29 CreateWithScriptCode(const char *data,
30 uint32_t options = 0); // see lldb::eTypeOption values
32 SBTypeSynthetic(const lldb::SBTypeSynthetic &rhs);
42 const char *GetData();
44 void SetClassName(const char *data);
46 void SetClassCode(const char *data);
48 uint32_t GetOptions();
50 void SetOptions(uint32_t);
52 bool GetDescription(lldb::SBStream &description,
53 lldb::DescriptionLevel description_level);
55 lldb::SBTypeSynthetic &operator=(const lldb::SBTypeSynthetic &rhs);
57 bool IsEqualTo(lldb::SBTypeSynthetic &rhs);
59 bool operator==(lldb::SBTypeSynthetic &rhs);
61 bool operator!=(lldb::SBTypeSynthetic &rhs);
64 friend class SBDebugger;
65 friend class SBTypeCategory;
68 lldb::ScriptedSyntheticChildrenSP GetSP();
70 void SetSP(const lldb::ScriptedSyntheticChildrenSP &typefilter_impl_sp);
72 lldb::ScriptedSyntheticChildrenSP m_opaque_sp;
74 SBTypeSynthetic(const lldb::ScriptedSyntheticChildrenSP &);
76 bool CopyOnWrite_Impl();
81 #endif // LLDB_DISABLE_PYTHON
83 #endif // LLDB_SBTypeSynthetic_h_