1296417Sdim//===-- OptionGroupValueObjectDisplay.h -------------------------*- C++ -*-===//
2254721Semaste//
3353358Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4353358Sdim// See https://llvm.org/LICENSE.txt for license information.
5353358Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6254721Semaste//
7254721Semaste//===----------------------------------------------------------------------===//
8254721Semaste
9254721Semaste#ifndef liblldb_OptionGroupValueObjectDisplay_h_
10254721Semaste#define liblldb_OptionGroupValueObjectDisplay_h_
11254721Semaste
12254721Semaste#include "lldb/Core/ValueObject.h"
13254721Semaste#include "lldb/Interpreter/Options.h"
14254721Semaste
15254721Semastenamespace lldb_private {
16254721Semaste
17254721Semaste// OptionGroupValueObjectDisplay
18254721Semaste
19314564Sdimclass OptionGroupValueObjectDisplay : public OptionGroup {
20254721Semastepublic:
21314564Sdim  OptionGroupValueObjectDisplay();
22254721Semaste
23314564Sdim  ~OptionGroupValueObjectDisplay() override;
24254721Semaste
25314564Sdim  llvm::ArrayRef<OptionDefinition> GetDefinitions() override;
26314564Sdim
27321369Sdim  Status SetOptionValue(uint32_t option_idx, llvm::StringRef option_value,
28321369Sdim                        ExecutionContext *execution_context) override;
29321369Sdim  Status SetOptionValue(uint32_t, const char *, ExecutionContext *) = delete;
30314564Sdim
31314564Sdim  void OptionParsingStarting(ExecutionContext *execution_context) override;
32314564Sdim
33314564Sdim  bool AnyOptionWasSet() const {
34314564Sdim    return show_types || no_summary_depth != 0 || show_location ||
35314564Sdim           flat_output || use_objc || max_depth != UINT32_MAX ||
36314564Sdim           ptr_depth != 0 || !use_synth || be_raw || ignore_cap ||
37314564Sdim           run_validator;
38314564Sdim  }
39314564Sdim
40314564Sdim  DumpValueObjectOptions GetAsDumpOptions(
41314564Sdim      LanguageRuntimeDescriptionDisplayVerbosity lang_descr_verbosity =
42314564Sdim          eLanguageRuntimeDescriptionDisplayVerbosityFull,
43314564Sdim      lldb::Format format = lldb::eFormatDefault,
44314564Sdim      lldb::TypeSummaryImplSP summary_sp = lldb::TypeSummaryImplSP());
45314564Sdim
46314564Sdim  bool show_types : 1, show_location : 1, flat_output : 1, use_objc : 1,
47314564Sdim      use_synth : 1, be_raw : 1, ignore_cap : 1, run_validator : 1;
48314564Sdim
49314564Sdim  uint32_t no_summary_depth;
50314564Sdim  uint32_t max_depth;
51314564Sdim  uint32_t ptr_depth;
52314564Sdim  uint32_t elem_count;
53314564Sdim  lldb::DynamicValueType use_dynamic;
54254721Semaste};
55254721Semaste
56254721Semaste} // namespace lldb_private
57254721Semaste
58296417Sdim#endif // liblldb_OptionGroupValueObjectDisplay_h_
59