LLDB  mainline
SBTypeSummary.h
Go to the documentation of this file.
1 //===-- SBTypeSummary.h -------------------------------------------*- C++
2 //-*-===//
3 //
4 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5 // See https://llvm.org/LICENSE.txt for license information.
6 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //
8 //===----------------------------------------------------------------------===//
9 
10 #ifndef LLDB_SBTypeSummary_h_
11 #define LLDB_SBTypeSummary_h_
12 
13 #include "lldb/API/SBDefines.h"
14 
15 namespace lldb {
17 public:
19 
21 
23 
25 
26  explicit operator bool() const;
27 
28  bool IsValid();
29 
30  lldb::LanguageType GetLanguage();
31 
32  lldb::TypeSummaryCapping GetCapping();
33 
34  void SetLanguage(lldb::LanguageType);
35 
36  void SetCapping(lldb::TypeSummaryCapping);
37 
38 protected:
39  friend class SBValue;
40 
42 
43  const lldb_private::TypeSummaryOptions *operator->() const;
44 
46 
48 
49  const lldb_private::TypeSummaryOptions &ref() const;
50 
51  void SetOptions(const lldb_private::TypeSummaryOptions *lldb_object_ptr);
52 
53 private:
54  std::unique_ptr<lldb_private::TypeSummaryOptions> m_opaque_up;
55 };
56 
58 public:
59  SBTypeSummary();
60 
61  // Native function summary formatter callback
62  typedef bool (*FormatCallback)(SBValue, SBTypeSummaryOptions, SBStream &);
63 
64  static SBTypeSummary
65  CreateWithSummaryString(const char *data,
66  uint32_t options = 0); // see lldb::eTypeOption values
67 
68  static SBTypeSummary
69  CreateWithFunctionName(const char *data,
70  uint32_t options = 0); // see lldb::eTypeOption values
71 
72  static SBTypeSummary
73  CreateWithScriptCode(const char *data,
74  uint32_t options = 0); // see lldb::eTypeOption values
75 
76  static SBTypeSummary CreateWithCallback(FormatCallback cb,
77  uint32_t options = 0,
78  const char *description = nullptr);
79 
81 
82  ~SBTypeSummary();
83 
84  explicit operator bool() const;
85 
86  bool IsValid() const;
87 
88  bool IsFunctionCode();
89 
90  bool IsFunctionName();
91 
92  bool IsSummaryString();
93 
94  const char *GetData();
95 
96  void SetSummaryString(const char *data);
97 
98  void SetFunctionName(const char *data);
99 
100  void SetFunctionCode(const char *data);
101 
102  uint32_t GetOptions();
103 
104  void SetOptions(uint32_t);
105 
106  bool GetDescription(lldb::SBStream &description,
107  lldb::DescriptionLevel description_level);
108 
109  lldb::SBTypeSummary &operator=(const lldb::SBTypeSummary &rhs);
110 
111  bool DoesPrintValue(lldb::SBValue value);
112 
113  bool IsEqualTo(lldb::SBTypeSummary &rhs);
114 
115  bool operator==(lldb::SBTypeSummary &rhs);
116 
117  bool operator!=(lldb::SBTypeSummary &rhs);
118 
119 protected:
120  friend class SBDebugger;
121  friend class SBTypeCategory;
122  friend class SBValue;
123 
124  lldb::TypeSummaryImplSP GetSP();
125 
126  void SetSP(const lldb::TypeSummaryImplSP &typefilter_impl_sp);
127 
128  lldb::TypeSummaryImplSP m_opaque_sp;
129 
130  SBTypeSummary(const lldb::TypeSummaryImplSP &);
131 
132  bool CopyOnWrite_Impl();
133 
134  bool ChangeSummaryType(bool want_script);
135 };
136 
137 } // namespace lldb
138 
139 #endif // LLDB_SBTypeSummary_h_
bool LLDB_API operator==(const SBAddress &lhs, const SBAddress &rhs)
Definition: SBAddress.cpp:66
LanguageType
Programming language type.
class LLDB_API SBValue
Definition: SBDefines.h:90
class LLDB_API SBTypeSummary
Definition: SBDefines.h:86
bool operator!=(const Address &lhs, const Address &rhs)
Definition: Address.cpp:979
#define LLDB_API
Definition: lldb-defines.h:23
lldb::TypeSummaryImplSP m_opaque_sp
Definition: SBAddress.h:15
class LLDB_API SBTypeSummaryOptions
Definition: SBDefines.h:87