1c8e7649aSEnrico Granata //===-- DumpValueObjectOptions.cpp -----------------------------------*- C++ -*-===//
2c8e7649aSEnrico Granata //
3c8e7649aSEnrico Granata //                     The LLVM Compiler Infrastructure
4c8e7649aSEnrico Granata //
5c8e7649aSEnrico Granata // This file is distributed under the University of Illinois Open Source
6c8e7649aSEnrico Granata // License. See LICENSE.TXT for details.
7c8e7649aSEnrico Granata //
8c8e7649aSEnrico Granata //===----------------------------------------------------------------------===//
9c8e7649aSEnrico Granata 
10c8e7649aSEnrico Granata #include "lldb/DataFormatters/DumpValueObjectOptions.h"
11c8e7649aSEnrico Granata 
12c8e7649aSEnrico Granata // C Includes
13c8e7649aSEnrico Granata // C++ Includes
14c8e7649aSEnrico Granata // Other libraries and framework includes
15c8e7649aSEnrico Granata // Project includes
16c8e7649aSEnrico Granata #include "lldb/Core/ValueObject.h"
17c8e7649aSEnrico Granata 
18c8e7649aSEnrico Granata using namespace lldb;
19c8e7649aSEnrico Granata using namespace lldb_private;
20c8e7649aSEnrico Granata 
21c8e7649aSEnrico Granata DumpValueObjectOptions::DumpValueObjectOptions() :
22c8e7649aSEnrico Granata m_summary_sp(),
23c8e7649aSEnrico Granata m_root_valobj_name(),
24c8e7649aSEnrico Granata m_max_ptr_depth(PointerDepth{PointerDepth::Mode::Default,0}),
25c8e7649aSEnrico Granata m_decl_printing_helper(),
26c8e7649aSEnrico Granata m_use_synthetic(true),
27c8e7649aSEnrico Granata m_scope_already_checked(false),
28c8e7649aSEnrico Granata m_flat_output(false),
29c8e7649aSEnrico Granata m_ignore_cap(false),
30c8e7649aSEnrico Granata m_show_types(false),
31c8e7649aSEnrico Granata m_show_location(false),
32c8e7649aSEnrico Granata m_use_objc(false),
33c8e7649aSEnrico Granata m_hide_root_type(false),
34c8e7649aSEnrico Granata m_hide_name(false),
35c8e7649aSEnrico Granata m_hide_value(false),
36c8e7649aSEnrico Granata m_run_validator(false),
37c8e7649aSEnrico Granata m_use_type_display_name(true),
38c8e7649aSEnrico Granata m_allow_oneliner_mode(true),
39*8cf44d96SEnrico Granata m_hide_pointer_value(false),
40*8cf44d96SEnrico Granata m_reveal_empty_aggregates(true)
41c8e7649aSEnrico Granata {}
42c8e7649aSEnrico Granata 
43c8e7649aSEnrico Granata 
44c8e7649aSEnrico Granata DumpValueObjectOptions::DumpValueObjectOptions (ValueObject& valobj) :
45c8e7649aSEnrico Granata DumpValueObjectOptions()
46c8e7649aSEnrico Granata {
47c8e7649aSEnrico Granata     m_use_dynamic = valobj.GetDynamicValueType();
48c8e7649aSEnrico Granata     m_use_synthetic = valobj.IsSynthetic();
49c8e7649aSEnrico Granata     m_varformat_language = valobj.GetPreferredDisplayLanguage();
50c8e7649aSEnrico Granata }
51c8e7649aSEnrico Granata 
52c8e7649aSEnrico Granata DumpValueObjectOptions&
53c8e7649aSEnrico Granata DumpValueObjectOptions::SetMaximumPointerDepth(PointerDepth depth)
54c8e7649aSEnrico Granata {
55c8e7649aSEnrico Granata     m_max_ptr_depth = depth;
56c8e7649aSEnrico Granata     return *this;
57c8e7649aSEnrico Granata }
58c8e7649aSEnrico Granata 
59c8e7649aSEnrico Granata DumpValueObjectOptions&
60c8e7649aSEnrico Granata DumpValueObjectOptions::SetMaximumDepth(uint32_t depth)
61c8e7649aSEnrico Granata {
62c8e7649aSEnrico Granata     m_max_depth = depth;
63c8e7649aSEnrico Granata     return *this;
64c8e7649aSEnrico Granata }
65c8e7649aSEnrico Granata 
66c8e7649aSEnrico Granata DumpValueObjectOptions&
67c8e7649aSEnrico Granata DumpValueObjectOptions::SetDeclPrintingHelper(DeclPrintingHelper helper)
68c8e7649aSEnrico Granata {
69c8e7649aSEnrico Granata     m_decl_printing_helper = helper;
70c8e7649aSEnrico Granata     return *this;
71c8e7649aSEnrico Granata }
72c8e7649aSEnrico Granata 
73c8e7649aSEnrico Granata DumpValueObjectOptions&
74c8e7649aSEnrico Granata DumpValueObjectOptions::SetShowTypes(bool show)
75c8e7649aSEnrico Granata {
76c8e7649aSEnrico Granata     m_show_types = show;
77c8e7649aSEnrico Granata     return *this;
78c8e7649aSEnrico Granata }
79c8e7649aSEnrico Granata 
80c8e7649aSEnrico Granata DumpValueObjectOptions&
81c8e7649aSEnrico Granata DumpValueObjectOptions::SetShowLocation(bool show)
82c8e7649aSEnrico Granata {
83c8e7649aSEnrico Granata     m_show_location = show;
84c8e7649aSEnrico Granata     return *this;
85c8e7649aSEnrico Granata }
86c8e7649aSEnrico Granata 
87c8e7649aSEnrico Granata DumpValueObjectOptions&
88c8e7649aSEnrico Granata DumpValueObjectOptions::SetUseObjectiveC(bool use)
89c8e7649aSEnrico Granata {
90c8e7649aSEnrico Granata     m_use_objc = use;
91c8e7649aSEnrico Granata     return *this;
92c8e7649aSEnrico Granata }
93c8e7649aSEnrico Granata 
94c8e7649aSEnrico Granata DumpValueObjectOptions&
95c8e7649aSEnrico Granata DumpValueObjectOptions::SetShowSummary(bool show)
96c8e7649aSEnrico Granata {
97c8e7649aSEnrico Granata     if (show == false)
98c8e7649aSEnrico Granata         SetOmitSummaryDepth(UINT32_MAX);
99c8e7649aSEnrico Granata     else
100c8e7649aSEnrico Granata         SetOmitSummaryDepth(0);
101c8e7649aSEnrico Granata     return *this;
102c8e7649aSEnrico Granata }
103c8e7649aSEnrico Granata 
104c8e7649aSEnrico Granata DumpValueObjectOptions&
105c8e7649aSEnrico Granata DumpValueObjectOptions::SetUseDynamicType(lldb::DynamicValueType dyn)
106c8e7649aSEnrico Granata {
107c8e7649aSEnrico Granata     m_use_dynamic = dyn;
108c8e7649aSEnrico Granata     return *this;
109c8e7649aSEnrico Granata }
110c8e7649aSEnrico Granata 
111c8e7649aSEnrico Granata DumpValueObjectOptions&
112c8e7649aSEnrico Granata DumpValueObjectOptions::SetUseSyntheticValue(bool use_synthetic)
113c8e7649aSEnrico Granata {
114c8e7649aSEnrico Granata     m_use_synthetic = use_synthetic;
115c8e7649aSEnrico Granata     return *this;
116c8e7649aSEnrico Granata }
117c8e7649aSEnrico Granata 
118c8e7649aSEnrico Granata DumpValueObjectOptions&
119c8e7649aSEnrico Granata DumpValueObjectOptions::SetScopeChecked(bool check)
120c8e7649aSEnrico Granata {
121c8e7649aSEnrico Granata     m_scope_already_checked = check;
122c8e7649aSEnrico Granata     return *this;
123c8e7649aSEnrico Granata }
124c8e7649aSEnrico Granata 
125c8e7649aSEnrico Granata DumpValueObjectOptions&
126c8e7649aSEnrico Granata DumpValueObjectOptions::SetFlatOutput(bool flat)
127c8e7649aSEnrico Granata {
128c8e7649aSEnrico Granata     m_flat_output = flat;
129c8e7649aSEnrico Granata     return *this;
130c8e7649aSEnrico Granata }
131c8e7649aSEnrico Granata 
132c8e7649aSEnrico Granata DumpValueObjectOptions&
133c8e7649aSEnrico Granata DumpValueObjectOptions::SetOmitSummaryDepth(uint32_t depth)
134c8e7649aSEnrico Granata {
135c8e7649aSEnrico Granata     m_omit_summary_depth = depth;
136c8e7649aSEnrico Granata     return *this;
137c8e7649aSEnrico Granata }
138c8e7649aSEnrico Granata 
139c8e7649aSEnrico Granata DumpValueObjectOptions&
140c8e7649aSEnrico Granata DumpValueObjectOptions::SetIgnoreCap(bool ignore)
141c8e7649aSEnrico Granata {
142c8e7649aSEnrico Granata     m_ignore_cap = ignore;
143c8e7649aSEnrico Granata     return *this;
144c8e7649aSEnrico Granata }
145c8e7649aSEnrico Granata 
146c8e7649aSEnrico Granata DumpValueObjectOptions&
147c8e7649aSEnrico Granata DumpValueObjectOptions::SetRawDisplay()
148c8e7649aSEnrico Granata {
149c8e7649aSEnrico Granata     SetUseSyntheticValue(false);
150c8e7649aSEnrico Granata     SetOmitSummaryDepth(UINT32_MAX);
151c8e7649aSEnrico Granata     SetIgnoreCap(true);
152c8e7649aSEnrico Granata     SetHideName(false);
153c8e7649aSEnrico Granata     SetHideValue(false);
154c8e7649aSEnrico Granata     SetUseTypeDisplayName(false);
155c8e7649aSEnrico Granata     SetAllowOnelinerMode(false);
156c8e7649aSEnrico Granata     return *this;
157c8e7649aSEnrico Granata }
158c8e7649aSEnrico Granata 
159c8e7649aSEnrico Granata DumpValueObjectOptions&
160c8e7649aSEnrico Granata DumpValueObjectOptions::SetFormat (lldb::Format format)
161c8e7649aSEnrico Granata {
162c8e7649aSEnrico Granata     m_format = format;
163c8e7649aSEnrico Granata     return *this;
164c8e7649aSEnrico Granata }
165c8e7649aSEnrico Granata 
166c8e7649aSEnrico Granata DumpValueObjectOptions&
167c8e7649aSEnrico Granata DumpValueObjectOptions::SetSummary (lldb::TypeSummaryImplSP summary)
168c8e7649aSEnrico Granata {
169c8e7649aSEnrico Granata     m_summary_sp = summary;
170c8e7649aSEnrico Granata     return *this;
171c8e7649aSEnrico Granata }
172c8e7649aSEnrico Granata 
173c8e7649aSEnrico Granata DumpValueObjectOptions&
174c8e7649aSEnrico Granata DumpValueObjectOptions::SetRootValueObjectName (const char* name)
175c8e7649aSEnrico Granata {
176c8e7649aSEnrico Granata     if (name)
177c8e7649aSEnrico Granata         m_root_valobj_name.assign(name);
178c8e7649aSEnrico Granata     else
179c8e7649aSEnrico Granata         m_root_valobj_name.clear();
180c8e7649aSEnrico Granata     return *this;
181c8e7649aSEnrico Granata }
182c8e7649aSEnrico Granata 
183c8e7649aSEnrico Granata DumpValueObjectOptions&
184c8e7649aSEnrico Granata DumpValueObjectOptions::SetHideRootType (bool hide_root_type)
185c8e7649aSEnrico Granata {
186c8e7649aSEnrico Granata     m_hide_root_type = hide_root_type;
187c8e7649aSEnrico Granata     return *this;
188c8e7649aSEnrico Granata }
189c8e7649aSEnrico Granata 
190c8e7649aSEnrico Granata DumpValueObjectOptions&
191c8e7649aSEnrico Granata DumpValueObjectOptions::SetHideName (bool hide_name)
192c8e7649aSEnrico Granata {
193c8e7649aSEnrico Granata     m_hide_name = hide_name;
194c8e7649aSEnrico Granata     return *this;
195c8e7649aSEnrico Granata }
196c8e7649aSEnrico Granata 
197c8e7649aSEnrico Granata DumpValueObjectOptions&
198c8e7649aSEnrico Granata DumpValueObjectOptions::SetHideValue (bool hide_value)
199c8e7649aSEnrico Granata {
200c8e7649aSEnrico Granata     m_hide_value = hide_value;
201c8e7649aSEnrico Granata     return *this;
202c8e7649aSEnrico Granata }
203c8e7649aSEnrico Granata 
204c8e7649aSEnrico Granata DumpValueObjectOptions&
205c8e7649aSEnrico Granata DumpValueObjectOptions::SetHidePointerValue (bool hide)
206c8e7649aSEnrico Granata {
207c8e7649aSEnrico Granata     m_hide_pointer_value = hide;
208c8e7649aSEnrico Granata     return *this;
209c8e7649aSEnrico Granata }
210c8e7649aSEnrico Granata 
211c8e7649aSEnrico Granata DumpValueObjectOptions&
212c8e7649aSEnrico Granata DumpValueObjectOptions::SetVariableFormatDisplayLanguage (lldb::LanguageType lang)
213c8e7649aSEnrico Granata {
214c8e7649aSEnrico Granata     m_varformat_language = lang;
215c8e7649aSEnrico Granata     return *this;
216c8e7649aSEnrico Granata }
217c8e7649aSEnrico Granata 
218c8e7649aSEnrico Granata DumpValueObjectOptions&
219c8e7649aSEnrico Granata DumpValueObjectOptions::SetRunValidator (bool run)
220c8e7649aSEnrico Granata {
221c8e7649aSEnrico Granata     m_run_validator = run;
222c8e7649aSEnrico Granata     return *this;
223c8e7649aSEnrico Granata }
224c8e7649aSEnrico Granata 
225c8e7649aSEnrico Granata DumpValueObjectOptions&
226c8e7649aSEnrico Granata DumpValueObjectOptions::SetUseTypeDisplayName (bool dis)
227c8e7649aSEnrico Granata {
228c8e7649aSEnrico Granata     m_use_type_display_name = dis;
229c8e7649aSEnrico Granata     return *this;
230c8e7649aSEnrico Granata }
231c8e7649aSEnrico Granata 
232c8e7649aSEnrico Granata DumpValueObjectOptions&
233c8e7649aSEnrico Granata DumpValueObjectOptions::SetAllowOnelinerMode (bool oneliner)
234c8e7649aSEnrico Granata {
235c8e7649aSEnrico Granata     m_allow_oneliner_mode = oneliner;
236c8e7649aSEnrico Granata     return *this;
237c8e7649aSEnrico Granata }
238*8cf44d96SEnrico Granata 
239*8cf44d96SEnrico Granata DumpValueObjectOptions&
240*8cf44d96SEnrico Granata DumpValueObjectOptions::SetRevealEmptyAggregates (bool reveal)
241*8cf44d96SEnrico Granata {
242*8cf44d96SEnrico Granata     m_reveal_empty_aggregates = reveal;
243*8cf44d96SEnrico Granata     return *this;
244*8cf44d96SEnrico Granata }
245*8cf44d96SEnrico Granata 
246