]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - contrib/llvm/tools/lldb/include/lldb/API/SBTypeSynthetic.h
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / contrib / llvm / tools / lldb / include / lldb / API / SBTypeSynthetic.h
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_