SBTypeSynthetic.h revision 16376ed044df3ee70fcf69e19f06af01e71a8e9a
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
15namespace lldb {
16
17    class SBTypeSynthetic
18    {
19    public:
20
21        SBTypeSynthetic();
22
23        static SBTypeSynthetic
24        CreateWithClassName (const char* data,
25                             uint32_t options = 0); // see lldb::eTypeOption values
26
27        static SBTypeSynthetic
28        CreateWithScriptCode (const char* data,
29                              uint32_t options = 0); // see lldb::eTypeOption values
30
31        SBTypeSynthetic (const lldb::SBTypeSynthetic &rhs);
32
33        ~SBTypeSynthetic ();
34
35        bool
36        IsValid() const;
37
38        bool
39        IsClassCode();
40
41        bool
42        IsClassName();
43
44        const char*
45        GetData ();
46
47        void
48        SetClassName (const char* data);
49
50        void
51        SetClassCode (const char* data);
52
53        uint32_t
54        GetOptions ();
55
56        void
57        SetOptions (uint32_t);
58
59        bool
60        GetDescription (lldb::SBStream &description,
61                        lldb::DescriptionLevel description_level);
62
63        lldb::SBTypeSynthetic &
64        operator = (const lldb::SBTypeSynthetic &rhs);
65
66        bool
67        IsEqualTo (lldb::SBTypeSynthetic &rhs);
68
69        bool
70        operator == (lldb::SBTypeSynthetic &rhs);
71
72        bool
73        operator != (lldb::SBTypeSynthetic &rhs);
74
75    protected:
76        friend class SBDebugger;
77        friend class SBTypeCategory;
78
79        lldb::TypeSyntheticImplSP
80        GetSP ();
81
82        void
83        SetSP (const lldb::TypeSyntheticImplSP &typefilter_impl_sp);
84
85        lldb::TypeSyntheticImplSP m_opaque_sp;
86
87        SBTypeSynthetic (const lldb::TypeSyntheticImplSP &);
88
89        bool
90        CopyOnWrite_Impl();
91
92    };
93
94
95} // namespace lldb
96
97#endif // LLDB_SBTypeSynthetic_h_
98