1 //===-- SBVariablesOptions.cpp --------------------------------------*- C++ 2 //-*-===// 3 // 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 11 #include "lldb/API/SBVariablesOptions.h" 12 13 using namespace lldb; 14 using namespace lldb_private; 15 16 class VariablesOptionsImpl { 17 public: 18 VariablesOptionsImpl() 19 : m_include_arguments(false), m_include_recognized_arguments(false), 20 m_include_locals(false), m_include_statics(false), 21 m_in_scope_only(false), m_include_runtime_support_values(false), 22 m_use_dynamic(lldb::eNoDynamicValues) {} 23 24 VariablesOptionsImpl(const VariablesOptionsImpl &) = default; 25 26 ~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 GetIncludeRecognizedArguments() const { 35 return m_include_recognized_arguments; 36 } 37 38 void SetIncludeRecognizedArguments(bool b) { 39 m_include_recognized_arguments = b; 40 } 41 42 bool GetIncludeLocals() const { return m_include_locals; } 43 44 void SetIncludeLocals(bool b) { m_include_locals = b; } 45 46 bool GetIncludeStatics() const { return m_include_statics; } 47 48 void SetIncludeStatics(bool b) { m_include_statics = b; } 49 50 bool GetInScopeOnly() const { return m_in_scope_only; } 51 52 void SetInScopeOnly(bool b) { m_in_scope_only = b; } 53 54 bool GetIncludeRuntimeSupportValues() const { 55 return m_include_runtime_support_values; 56 } 57 58 void SetIncludeRuntimeSupportValues(bool b) { 59 m_include_runtime_support_values = b; 60 } 61 62 lldb::DynamicValueType GetUseDynamic() const { return m_use_dynamic; } 63 64 void SetUseDynamic(lldb::DynamicValueType d) { m_use_dynamic = d; } 65 66 private: 67 bool m_include_arguments : 1; 68 bool m_include_recognized_arguments : 1; 69 bool m_include_locals : 1; 70 bool m_include_statics : 1; 71 bool m_in_scope_only : 1; 72 bool m_include_runtime_support_values : 1; 73 lldb::DynamicValueType m_use_dynamic; 74 }; 75 76 SBVariablesOptions::SBVariablesOptions() 77 : m_opaque_ap(new VariablesOptionsImpl()) {} 78 79 SBVariablesOptions::SBVariablesOptions(const SBVariablesOptions &options) 80 : m_opaque_ap(new VariablesOptionsImpl(options.ref())) {} 81 82 SBVariablesOptions &SBVariablesOptions:: 83 operator=(const SBVariablesOptions &options) { 84 m_opaque_ap.reset(new VariablesOptionsImpl(options.ref())); 85 return *this; 86 } 87 88 SBVariablesOptions::~SBVariablesOptions() = default; 89 90 bool SBVariablesOptions::IsValid() const { return m_opaque_ap != nullptr; } 91 92 bool SBVariablesOptions::GetIncludeArguments() const { 93 return m_opaque_ap->GetIncludeArguments(); 94 } 95 96 void SBVariablesOptions::SetIncludeArguments(bool arguments) { 97 m_opaque_ap->SetIncludeArguments(arguments); 98 } 99 100 bool SBVariablesOptions::GetIncludeRecognizedArguments() const { 101 return m_opaque_ap->GetIncludeRecognizedArguments(); 102 } 103 104 void SBVariablesOptions::SetIncludeRecognizedArguments(bool arguments) { 105 m_opaque_ap->SetIncludeRecognizedArguments(arguments); 106 } 107 108 bool SBVariablesOptions::GetIncludeLocals() const { 109 return m_opaque_ap->GetIncludeLocals(); 110 } 111 112 void SBVariablesOptions::SetIncludeLocals(bool locals) { 113 m_opaque_ap->SetIncludeLocals(locals); 114 } 115 116 bool SBVariablesOptions::GetIncludeStatics() const { 117 return m_opaque_ap->GetIncludeStatics(); 118 } 119 120 void SBVariablesOptions::SetIncludeStatics(bool statics) { 121 m_opaque_ap->SetIncludeStatics(statics); 122 } 123 124 bool SBVariablesOptions::GetInScopeOnly() const { 125 return m_opaque_ap->GetInScopeOnly(); 126 } 127 128 void SBVariablesOptions::SetInScopeOnly(bool in_scope_only) { 129 m_opaque_ap->SetInScopeOnly(in_scope_only); 130 } 131 132 bool SBVariablesOptions::GetIncludeRuntimeSupportValues() const { 133 return m_opaque_ap->GetIncludeRuntimeSupportValues(); 134 } 135 136 void SBVariablesOptions::SetIncludeRuntimeSupportValues( 137 bool runtime_support_values) { 138 m_opaque_ap->SetIncludeRuntimeSupportValues(runtime_support_values); 139 } 140 141 lldb::DynamicValueType SBVariablesOptions::GetUseDynamic() const { 142 return m_opaque_ap->GetUseDynamic(); 143 } 144 145 void SBVariablesOptions::SetUseDynamic(lldb::DynamicValueType dynamic) { 146 m_opaque_ap->SetUseDynamic(dynamic); 147 } 148 149 VariablesOptionsImpl *SBVariablesOptions::operator->() { 150 return m_opaque_ap.operator->(); 151 } 152 153 const VariablesOptionsImpl *SBVariablesOptions::operator->() const { 154 return m_opaque_ap.operator->(); 155 } 156 157 VariablesOptionsImpl *SBVariablesOptions::get() { return m_opaque_ap.get(); } 158 159 VariablesOptionsImpl &SBVariablesOptions::ref() { return *m_opaque_ap; } 160 161 const VariablesOptionsImpl &SBVariablesOptions::ref() const { 162 return *m_opaque_ap; 163 } 164 165 SBVariablesOptions::SBVariablesOptions(VariablesOptionsImpl *lldb_object_ptr) 166 : m_opaque_ap(std::move(lldb_object_ptr)) {} 167 168 void SBVariablesOptions::SetOptions(VariablesOptionsImpl *lldb_object_ptr) { 169 m_opaque_ap.reset(std::move(lldb_object_ptr)); 170 } 171