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_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) {} 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 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 58 private: 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; 65 }; 66 67 SBVariablesOptions::SBVariablesOptions() 68 : m_opaque_ap(new VariablesOptionsImpl()) {} 69 70 SBVariablesOptions::SBVariablesOptions(const SBVariablesOptions &options) 71 : m_opaque_ap(new VariablesOptionsImpl(options.ref())) {} 72 73 SBVariablesOptions &SBVariablesOptions:: 74 operator=(const SBVariablesOptions &options) { 75 m_opaque_ap.reset(new VariablesOptionsImpl(options.ref())); 76 return *this; 77 } 78 79 SBVariablesOptions::~SBVariablesOptions() = default; 80 81 bool SBVariablesOptions::IsValid() const { 82 return m_opaque_ap.get() != nullptr; 83 } 84 85 bool SBVariablesOptions::GetIncludeArguments() const { 86 return m_opaque_ap->GetIncludeArguments(); 87 } 88 89 void SBVariablesOptions::SetIncludeArguments(bool arguments) { 90 m_opaque_ap->SetIncludeArguments(arguments); 91 } 92 93 bool SBVariablesOptions::GetIncludeLocals() const { 94 return m_opaque_ap->GetIncludeLocals(); 95 } 96 97 void SBVariablesOptions::SetIncludeLocals(bool locals) { 98 m_opaque_ap->SetIncludeLocals(locals); 99 } 100 101 bool SBVariablesOptions::GetIncludeStatics() const { 102 return m_opaque_ap->GetIncludeStatics(); 103 } 104 105 void SBVariablesOptions::SetIncludeStatics(bool statics) { 106 m_opaque_ap->SetIncludeStatics(statics); 107 } 108 109 bool SBVariablesOptions::GetInScopeOnly() const { 110 return m_opaque_ap->GetInScopeOnly(); 111 } 112 113 void SBVariablesOptions::SetInScopeOnly(bool in_scope_only) { 114 m_opaque_ap->SetInScopeOnly(in_scope_only); 115 } 116 117 bool SBVariablesOptions::GetIncludeRuntimeSupportValues() const { 118 return m_opaque_ap->GetIncludeRuntimeSupportValues(); 119 } 120 121 void SBVariablesOptions::SetIncludeRuntimeSupportValues( 122 bool runtime_support_values) { 123 m_opaque_ap->SetIncludeRuntimeSupportValues(runtime_support_values); 124 } 125 126 lldb::DynamicValueType SBVariablesOptions::GetUseDynamic() const { 127 return m_opaque_ap->GetUseDynamic(); 128 } 129 130 void SBVariablesOptions::SetUseDynamic(lldb::DynamicValueType dynamic) { 131 m_opaque_ap->SetUseDynamic(dynamic); 132 } 133 134 VariablesOptionsImpl *SBVariablesOptions::operator->() { 135 return m_opaque_ap.operator->(); 136 } 137 138 const VariablesOptionsImpl *SBVariablesOptions::operator->() const { 139 return m_opaque_ap.operator->(); 140 } 141 142 VariablesOptionsImpl *SBVariablesOptions::get() { return m_opaque_ap.get(); } 143 144 VariablesOptionsImpl &SBVariablesOptions::ref() { return *m_opaque_ap; } 145 146 const VariablesOptionsImpl &SBVariablesOptions::ref() const { 147 return *m_opaque_ap; 148 } 149 150 SBVariablesOptions::SBVariablesOptions(VariablesOptionsImpl *lldb_object_ptr) 151 : m_opaque_ap(std::move(lldb_object_ptr)) {} 152 153 void SBVariablesOptions::SetOptions(VariablesOptionsImpl *lldb_object_ptr) { 154 m_opaque_ap.reset(std::move(lldb_object_ptr)); 155 } 156