SBTypeSummary.h revision 280031
1254721Semaste//===-- SBTypeSummary.h -------------------------------------------*- C++ -*-===//
2254721Semaste//
3254721Semaste//                     The LLVM Compiler Infrastructure
4254721Semaste//
5254721Semaste// This file is distributed under the University of Illinois Open Source
6254721Semaste// License. See LICENSE.TXT for details.
7254721Semaste//
8254721Semaste//===----------------------------------------------------------------------===//
9254721Semaste
10254721Semaste#ifndef LLDB_SBTypeSummary_h_
11254721Semaste#define LLDB_SBTypeSummary_h_
12254721Semaste
13254721Semaste#include "lldb/API/SBDefines.h"
14254721Semaste
15254721Semaste#ifndef LLDB_DISABLE_PYTHON
16254721Semaste
17254721Semastenamespace lldb {
18280031Sdim    class SBTypeSummaryOptions
19280031Sdim    {
20280031Sdim    public:
21280031Sdim        SBTypeSummaryOptions();
22280031Sdim
23280031Sdim        SBTypeSummaryOptions (const lldb::SBTypeSummaryOptions &rhs);
24280031Sdim
25280031Sdim        SBTypeSummaryOptions (const lldb_private::TypeSummaryOptions *lldb_object_ptr);
26280031Sdim
27280031Sdim        ~SBTypeSummaryOptions ();
28280031Sdim
29280031Sdim        bool
30280031Sdim        IsValid ();
31280031Sdim
32280031Sdim        lldb::LanguageType
33280031Sdim        GetLanguage ();
34280031Sdim
35280031Sdim        lldb::TypeSummaryCapping
36280031Sdim        GetCapping ();
37280031Sdim
38280031Sdim        void
39280031Sdim        SetLanguage (lldb::LanguageType);
40280031Sdim
41280031Sdim        void
42280031Sdim        SetCapping (lldb::TypeSummaryCapping);
43280031Sdim
44280031Sdim    protected:
45280031Sdim        friend class SBValue;
46280031Sdim
47280031Sdim        lldb_private::TypeSummaryOptions *
48280031Sdim        operator->();
49280031Sdim
50280031Sdim        const lldb_private::TypeSummaryOptions *
51280031Sdim        operator->() const;
52280031Sdim
53280031Sdim        lldb_private::TypeSummaryOptions *
54280031Sdim        get ();
55280031Sdim
56280031Sdim        lldb_private::TypeSummaryOptions &
57280031Sdim        ref();
58280031Sdim
59280031Sdim        const lldb_private::TypeSummaryOptions &
60280031Sdim        ref() const;
61280031Sdim
62280031Sdim        void
63280031Sdim        SetOptions (const lldb_private::TypeSummaryOptions *lldb_object_ptr);
64280031Sdim
65280031Sdim    private:
66280031Sdim        std::unique_ptr<lldb_private::TypeSummaryOptions> m_opaque_ap;
67280031Sdim    };
68254721Semaste
69254721Semaste    class SBTypeSummary
70254721Semaste    {
71254721Semaste    public:
72254721Semaste
73254721Semaste        SBTypeSummary();
74254721Semaste
75254721Semaste        static SBTypeSummary
76254721Semaste        CreateWithSummaryString (const char* data,
77254721Semaste                                 uint32_t options = 0); // see lldb::eTypeOption values
78254721Semaste
79254721Semaste        static SBTypeSummary
80254721Semaste        CreateWithFunctionName (const char* data,
81254721Semaste                                uint32_t options = 0); // see lldb::eTypeOption values
82254721Semaste
83254721Semaste        static SBTypeSummary
84254721Semaste        CreateWithScriptCode (const char* data,
85254721Semaste                              uint32_t options = 0); // see lldb::eTypeOption values
86254721Semaste
87254721Semaste        SBTypeSummary (const lldb::SBTypeSummary &rhs);
88254721Semaste
89254721Semaste        ~SBTypeSummary ();
90254721Semaste
91254721Semaste        bool
92254721Semaste        IsValid() const;
93254721Semaste
94254721Semaste        bool
95254721Semaste        IsFunctionCode();
96254721Semaste
97254721Semaste        bool
98254721Semaste        IsFunctionName();
99254721Semaste
100254721Semaste        bool
101254721Semaste        IsSummaryString();
102254721Semaste
103254721Semaste        const char*
104254721Semaste        GetData ();
105254721Semaste
106254721Semaste        void
107254721Semaste        SetSummaryString (const char* data);
108254721Semaste
109254721Semaste        void
110254721Semaste        SetFunctionName (const char* data);
111254721Semaste
112254721Semaste        void
113254721Semaste        SetFunctionCode (const char* data);
114254721Semaste
115254721Semaste        uint32_t
116254721Semaste        GetOptions ();
117254721Semaste
118254721Semaste        void
119254721Semaste        SetOptions (uint32_t);
120254721Semaste
121254721Semaste        bool
122254721Semaste        GetDescription (lldb::SBStream &description,
123254721Semaste                        lldb::DescriptionLevel description_level);
124254721Semaste
125254721Semaste        lldb::SBTypeSummary &
126254721Semaste        operator = (const lldb::SBTypeSummary &rhs);
127254721Semaste
128254721Semaste        bool
129254721Semaste        IsEqualTo (lldb::SBTypeSummary &rhs);
130254721Semaste
131254721Semaste        bool
132254721Semaste        operator == (lldb::SBTypeSummary &rhs);
133254721Semaste
134254721Semaste        bool
135254721Semaste        operator != (lldb::SBTypeSummary &rhs);
136254721Semaste
137254721Semaste    protected:
138254721Semaste        friend class SBDebugger;
139254721Semaste        friend class SBTypeCategory;
140254721Semaste        friend class SBValue;
141254721Semaste
142254721Semaste        lldb::TypeSummaryImplSP
143254721Semaste        GetSP ();
144254721Semaste
145254721Semaste        void
146254721Semaste        SetSP (const lldb::TypeSummaryImplSP &typefilter_impl_sp);
147254721Semaste
148254721Semaste        lldb::TypeSummaryImplSP m_opaque_sp;
149254721Semaste
150254721Semaste        SBTypeSummary (const lldb::TypeSummaryImplSP &);
151254721Semaste
152254721Semaste        bool
153254721Semaste        CopyOnWrite_Impl();
154254721Semaste
155254721Semaste        bool
156254721Semaste        ChangeSummaryType (bool want_script);
157254721Semaste
158254721Semaste    };
159254721Semaste
160254721Semaste
161254721Semaste} // namespace lldb
162254721Semaste
163254721Semaste#endif // LLDB_DISABLE_PYTHON
164254721Semaste
165254721Semaste#endif // LLDB_SBTypeSummary_h_
166