blob: e12b9696521c0a2d2ff846ec59be2395767966f9 [file] [log] [blame]
Kate Stoneb9c1b512016-09-06 20:57:50 +00001//===-- SBVariablesOptions.cpp --------------------------------------*- C++
2//-*-===//
Zachary Turner51f96ee2015-02-17 17:55:50 +00003//
4// The LLVM Compiler Infrastructure
5//
6// This file is distributed under the University of Illinois Open Source
7// License. See LICENSE.TXT for details.
8//
9//===----------------------------------------------------------------------===//
10
Zachary Turner51f96ee2015-02-17 17:55:50 +000011#include "lldb/API/SBVariablesOptions.h"
12
13using namespace lldb;
14using namespace lldb_private;
15
Kate Stoneb9c1b512016-09-06 20:57:50 +000016class VariablesOptionsImpl {
Zachary Turner51f96ee2015-02-17 17:55:50 +000017public:
Kate Stoneb9c1b512016-09-06 20:57:50 +000018 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) {}
Zachary Turner51f96ee2015-02-17 17:55:50 +000023
Kate Stoneb9c1b512016-09-06 20:57:50 +000024 VariablesOptionsImpl(const VariablesOptionsImpl &) = default;
Zachary Turner51f96ee2015-02-17 17:55:50 +000025
Kate Stoneb9c1b512016-09-06 20:57:50 +000026 ~VariablesOptionsImpl() = default;
27
28 VariablesOptionsImpl &operator=(const VariablesOptionsImpl &) = default;
29
30 bool GetIncludeArguments() const { return m_include_arguments; }
31
32 void SetIncludeArguments(bool b) { m_include_arguments = b; }
33
34 bool GetIncludeLocals() const { return m_include_locals; }
35
36 void SetIncludeLocals(bool b) { m_include_locals = b; }
37
38 bool GetIncludeStatics() const { return m_include_statics; }
39
40 void SetIncludeStatics(bool b) { m_include_statics = b; }
41
42 bool GetInScopeOnly() const { return m_in_scope_only; }
43
44 void SetInScopeOnly(bool b) { m_in_scope_only = b; }
45
46 bool GetIncludeRuntimeSupportValues() const {
47 return m_include_runtime_support_values;
48 }
49
50 void SetIncludeRuntimeSupportValues(bool b) {
51 m_include_runtime_support_values = b;
52 }
53
54 lldb::DynamicValueType GetUseDynamic() const { return m_use_dynamic; }
55
56 void SetUseDynamic(lldb::DynamicValueType d) { m_use_dynamic = d; }
57
Zachary Turner51f96ee2015-02-17 17:55:50 +000058private:
Kate Stoneb9c1b512016-09-06 20:57:50 +000059 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;
Zachary Turner51f96ee2015-02-17 17:55:50 +000065};
66
Kate Stoneb9c1b512016-09-06 20:57:50 +000067SBVariablesOptions::SBVariablesOptions()
68 : m_opaque_ap(new VariablesOptionsImpl()) {}
69
70SBVariablesOptions::SBVariablesOptions(const SBVariablesOptions &options)
71 : m_opaque_ap(new VariablesOptionsImpl(options.ref())) {}
72
73SBVariablesOptions &SBVariablesOptions::
74operator=(const SBVariablesOptions &options) {
75 m_opaque_ap.reset(new VariablesOptionsImpl(options.ref()));
76 return *this;
Zachary Turner51f96ee2015-02-17 17:55:50 +000077}
78
Kate Stoneb9c1b512016-09-06 20:57:50 +000079SBVariablesOptions::~SBVariablesOptions() = default;
80
81bool SBVariablesOptions::IsValid() const {
82 return m_opaque_ap.get() != nullptr;
Zachary Turner51f96ee2015-02-17 17:55:50 +000083}
84
Kate Stoneb9c1b512016-09-06 20:57:50 +000085bool SBVariablesOptions::GetIncludeArguments() const {
86 return m_opaque_ap->GetIncludeArguments();
Zachary Turner51f96ee2015-02-17 17:55:50 +000087}
88
Kate Stoneb9c1b512016-09-06 20:57:50 +000089void SBVariablesOptions::SetIncludeArguments(bool arguments) {
90 m_opaque_ap->SetIncludeArguments(arguments);
Zachary Turner51f96ee2015-02-17 17:55:50 +000091}
92
Kate Stoneb9c1b512016-09-06 20:57:50 +000093bool SBVariablesOptions::GetIncludeLocals() const {
94 return m_opaque_ap->GetIncludeLocals();
Zachary Turner51f96ee2015-02-17 17:55:50 +000095}
96
Kate Stoneb9c1b512016-09-06 20:57:50 +000097void SBVariablesOptions::SetIncludeLocals(bool locals) {
98 m_opaque_ap->SetIncludeLocals(locals);
Zachary Turner51f96ee2015-02-17 17:55:50 +000099}
100
Kate Stoneb9c1b512016-09-06 20:57:50 +0000101bool SBVariablesOptions::GetIncludeStatics() const {
102 return m_opaque_ap->GetIncludeStatics();
Zachary Turner51f96ee2015-02-17 17:55:50 +0000103}
104
Kate Stoneb9c1b512016-09-06 20:57:50 +0000105void SBVariablesOptions::SetIncludeStatics(bool statics) {
106 m_opaque_ap->SetIncludeStatics(statics);
Zachary Turner51f96ee2015-02-17 17:55:50 +0000107}
108
Kate Stoneb9c1b512016-09-06 20:57:50 +0000109bool SBVariablesOptions::GetInScopeOnly() const {
110 return m_opaque_ap->GetInScopeOnly();
Zachary Turner51f96ee2015-02-17 17:55:50 +0000111}
112
Kate Stoneb9c1b512016-09-06 20:57:50 +0000113void SBVariablesOptions::SetInScopeOnly(bool in_scope_only) {
114 m_opaque_ap->SetInScopeOnly(in_scope_only);
Zachary Turner51f96ee2015-02-17 17:55:50 +0000115}
116
Kate Stoneb9c1b512016-09-06 20:57:50 +0000117bool SBVariablesOptions::GetIncludeRuntimeSupportValues() const {
118 return m_opaque_ap->GetIncludeRuntimeSupportValues();
Zachary Turner51f96ee2015-02-17 17:55:50 +0000119}
120
Kate Stoneb9c1b512016-09-06 20:57:50 +0000121void SBVariablesOptions::SetIncludeRuntimeSupportValues(
122 bool runtime_support_values) {
123 m_opaque_ap->SetIncludeRuntimeSupportValues(runtime_support_values);
Zachary Turner51f96ee2015-02-17 17:55:50 +0000124}
125
Kate Stoneb9c1b512016-09-06 20:57:50 +0000126lldb::DynamicValueType SBVariablesOptions::GetUseDynamic() const {
127 return m_opaque_ap->GetUseDynamic();
Zachary Turner51f96ee2015-02-17 17:55:50 +0000128}
129
Kate Stoneb9c1b512016-09-06 20:57:50 +0000130void SBVariablesOptions::SetUseDynamic(lldb::DynamicValueType dynamic) {
131 m_opaque_ap->SetUseDynamic(dynamic);
Zachary Turner51f96ee2015-02-17 17:55:50 +0000132}
133
Kate Stoneb9c1b512016-09-06 20:57:50 +0000134VariablesOptionsImpl *SBVariablesOptions::operator->() {
135 return m_opaque_ap.operator->();
Zachary Turner51f96ee2015-02-17 17:55:50 +0000136}
137
Kate Stoneb9c1b512016-09-06 20:57:50 +0000138const VariablesOptionsImpl *SBVariablesOptions::operator->() const {
139 return m_opaque_ap.operator->();
Zachary Turner51f96ee2015-02-17 17:55:50 +0000140}
141
Kate Stoneb9c1b512016-09-06 20:57:50 +0000142VariablesOptionsImpl *SBVariablesOptions::get() { return m_opaque_ap.get(); }
143
144VariablesOptionsImpl &SBVariablesOptions::ref() { return *m_opaque_ap; }
145
146const VariablesOptionsImpl &SBVariablesOptions::ref() const {
147 return *m_opaque_ap;
Zachary Turner51f96ee2015-02-17 17:55:50 +0000148}
149
Kate Stoneb9c1b512016-09-06 20:57:50 +0000150SBVariablesOptions::SBVariablesOptions(VariablesOptionsImpl *lldb_object_ptr)
151 : m_opaque_ap(std::move(lldb_object_ptr)) {}
Zachary Turner51f96ee2015-02-17 17:55:50 +0000152
Kate Stoneb9c1b512016-09-06 20:57:50 +0000153void SBVariablesOptions::SetOptions(VariablesOptionsImpl *lldb_object_ptr) {
154 m_opaque_ap.reset(std::move(lldb_object_ptr));
Zachary Turner51f96ee2015-02-17 17:55:50 +0000155}