]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm/tools/lldb/include/lldb/API/SBTypeSynthetic.h
MFV r345988:
[FreeBSD/FreeBSD.git] / contrib / llvm / tools / lldb / include / lldb / API / SBTypeSynthetic.h
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_