1 //===-- SBVariablesOptions.cpp --------------------------------------*- C++
4 // The LLVM Compiler Infrastructure
6 // This file is distributed under the University of Illinois Open Source
7 // License. See LICENSE.TXT for details.
9 //===----------------------------------------------------------------------===//
11 #include "lldb/API/SBVariablesOptions.h"
14 using namespace lldb_private;
16 class VariablesOptionsImpl {
18 VariablesOptionsImpl()
19 : m_include_arguments(false), m_include_locals(false),
20 m_include_statics(false), m_in_scope_only(false),
21 m_include_runtime_support_values(false),
22 m_use_dynamic(lldb::eNoDynamicValues) {}
24 VariablesOptionsImpl(const VariablesOptionsImpl &) = default;
26 ~VariablesOptionsImpl() = default;
28 VariablesOptionsImpl &operator=(const VariablesOptionsImpl &) = default;
30 bool GetIncludeArguments() const { return m_include_arguments; }
32 void SetIncludeArguments(bool b) { m_include_arguments = b; }
34 bool GetIncludeLocals() const { return m_include_locals; }
36 void SetIncludeLocals(bool b) { m_include_locals = b; }
38 bool GetIncludeStatics() const { return m_include_statics; }
40 void SetIncludeStatics(bool b) { m_include_statics = b; }
42 bool GetInScopeOnly() const { return m_in_scope_only; }
44 void SetInScopeOnly(bool b) { m_in_scope_only = b; }
46 bool GetIncludeRuntimeSupportValues() const {
47 return m_include_runtime_support_values;
50 void SetIncludeRuntimeSupportValues(bool b) {
51 m_include_runtime_support_values = b;
54 lldb::DynamicValueType GetUseDynamic() const { return m_use_dynamic; }
56 void SetUseDynamic(lldb::DynamicValueType d) { m_use_dynamic = d; }
59 bool m_include_arguments : 1;
60 bool m_include_locals : 1;
61 bool m_include_statics : 1;
62 bool m_in_scope_only : 1;
63 bool m_include_runtime_support_values : 1;
64 lldb::DynamicValueType m_use_dynamic;
67 SBVariablesOptions::SBVariablesOptions()
68 : m_opaque_ap(new VariablesOptionsImpl()) {}
70 SBVariablesOptions::SBVariablesOptions(const SBVariablesOptions &options)
71 : m_opaque_ap(new VariablesOptionsImpl(options.ref())) {}
73 SBVariablesOptions &SBVariablesOptions::
74 operator=(const SBVariablesOptions &options) {
75 m_opaque_ap.reset(new VariablesOptionsImpl(options.ref()));
79 SBVariablesOptions::~SBVariablesOptions() = default;
81 bool SBVariablesOptions::IsValid() const {
82 return m_opaque_ap.get() != nullptr;
85 bool SBVariablesOptions::GetIncludeArguments() const {
86 return m_opaque_ap->GetIncludeArguments();
89 void SBVariablesOptions::SetIncludeArguments(bool arguments) {
90 m_opaque_ap->SetIncludeArguments(arguments);
93 bool SBVariablesOptions::GetIncludeLocals() const {
94 return m_opaque_ap->GetIncludeLocals();
97 void SBVariablesOptions::SetIncludeLocals(bool locals) {
98 m_opaque_ap->SetIncludeLocals(locals);
101 bool SBVariablesOptions::GetIncludeStatics() const {
102 return m_opaque_ap->GetIncludeStatics();
105 void SBVariablesOptions::SetIncludeStatics(bool statics) {
106 m_opaque_ap->SetIncludeStatics(statics);
109 bool SBVariablesOptions::GetInScopeOnly() const {
110 return m_opaque_ap->GetInScopeOnly();
113 void SBVariablesOptions::SetInScopeOnly(bool in_scope_only) {
114 m_opaque_ap->SetInScopeOnly(in_scope_only);
117 bool SBVariablesOptions::GetIncludeRuntimeSupportValues() const {
118 return m_opaque_ap->GetIncludeRuntimeSupportValues();
121 void SBVariablesOptions::SetIncludeRuntimeSupportValues(
122 bool runtime_support_values) {
123 m_opaque_ap->SetIncludeRuntimeSupportValues(runtime_support_values);
126 lldb::DynamicValueType SBVariablesOptions::GetUseDynamic() const {
127 return m_opaque_ap->GetUseDynamic();
130 void SBVariablesOptions::SetUseDynamic(lldb::DynamicValueType dynamic) {
131 m_opaque_ap->SetUseDynamic(dynamic);
134 VariablesOptionsImpl *SBVariablesOptions::operator->() {
135 return m_opaque_ap.operator->();
138 const VariablesOptionsImpl *SBVariablesOptions::operator->() const {
139 return m_opaque_ap.operator->();
142 VariablesOptionsImpl *SBVariablesOptions::get() { return m_opaque_ap.get(); }
144 VariablesOptionsImpl &SBVariablesOptions::ref() { return *m_opaque_ap; }
146 const VariablesOptionsImpl &SBVariablesOptions::ref() const {
150 SBVariablesOptions::SBVariablesOptions(VariablesOptionsImpl *lldb_object_ptr)
151 : m_opaque_ap(std::move(lldb_object_ptr)) {}
153 void SBVariablesOptions::SetOptions(VariablesOptionsImpl *lldb_object_ptr) {
154 m_opaque_ap.reset(std::move(lldb_object_ptr));