SBTypeSynthetic.h revision d760907c1d42726fa0c8c48efa28385ed339bb94
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        friend class SBValue;
79
80        lldb::TypeSyntheticImplSP
81        GetSP ();
82
83        void
84        SetSP (const lldb::TypeSyntheticImplSP &typefilter_impl_sp);
85
86        lldb::TypeSyntheticImplSP m_opaque_sp;
87
88        SBTypeSynthetic (const lldb::TypeSyntheticImplSP &);
89
90        bool
91        CopyOnWrite_Impl();
92
93    };
94
95
96} // namespace lldb
97
98#endif // LLDB_SBTypeSynthetic_h_
99