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 
17 namespace 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