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