1//===-- SBTypeSummary.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_SBTypeSummary_h_
11#define LLDB_SBTypeSummary_h_
12
13#include "lldb/API/SBDefines.h"
14
15#ifndef LLDB_DISABLE_PYTHON
16
17namespace lldb {
18
19    class SBTypeSummary
20    {
21    public:
22
23        SBTypeSummary();
24
25        static SBTypeSummary
26        CreateWithSummaryString (const char* data,
27                                 uint32_t options = 0); // see lldb::eTypeOption values
28
29        static SBTypeSummary
30        CreateWithFunctionName (const char* data,
31                                uint32_t options = 0); // see lldb::eTypeOption values
32
33        static SBTypeSummary
34        CreateWithScriptCode (const char* data,
35                              uint32_t options = 0); // see lldb::eTypeOption values
36
37        SBTypeSummary (const lldb::SBTypeSummary &rhs);
38
39        ~SBTypeSummary ();
40
41        bool
42        IsValid() const;
43
44        bool
45        IsFunctionCode();
46
47        bool
48        IsFunctionName();
49
50        bool
51        IsSummaryString();
52
53        const char*
54        GetData ();
55
56        void
57        SetSummaryString (const char* data);
58
59        void
60        SetFunctionName (const char* data);
61
62        void
63        SetFunctionCode (const char* data);
64
65        uint32_t
66        GetOptions ();
67
68        void
69        SetOptions (uint32_t);
70
71        bool
72        GetDescription (lldb::SBStream &description,
73                        lldb::DescriptionLevel description_level);
74
75        lldb::SBTypeSummary &
76        operator = (const lldb::SBTypeSummary &rhs);
77
78        bool
79        IsEqualTo (lldb::SBTypeSummary &rhs);
80
81        bool
82        operator == (lldb::SBTypeSummary &rhs);
83
84        bool
85        operator != (lldb::SBTypeSummary &rhs);
86
87    protected:
88        friend class SBDebugger;
89        friend class SBTypeCategory;
90        friend class SBValue;
91
92        lldb::TypeSummaryImplSP
93        GetSP ();
94
95        void
96        SetSP (const lldb::TypeSummaryImplSP &typefilter_impl_sp);
97
98        lldb::TypeSummaryImplSP m_opaque_sp;
99
100        SBTypeSummary (const lldb::TypeSummaryImplSP &);
101
102        bool
103        CopyOnWrite_Impl();
104
105        bool
106        ChangeSummaryType (bool want_script);
107
108    };
109
110
111} // namespace lldb
112
113#endif // LLDB_DISABLE_PYTHON
114
115#endif // LLDB_SBTypeSummary_h_
116