SBTypeSynthetic.h revision c48ca82920bd333c7ccb6ec0e579207add130296
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
17namespace 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::TypeSyntheticImplSP
83        GetSP ();
84
85        void
86        SetSP (const lldb::TypeSyntheticImplSP &typefilter_impl_sp);
87
88        lldb::TypeSyntheticImplSP m_opaque_sp;
89
90        SBTypeSynthetic (const lldb::TypeSyntheticImplSP &);
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