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