1b9c1b51eSKate Stone //===-- SBVariablesOptions.cpp --------------------------------------*- C++ 2b9c1b51eSKate Stone //-*-===// 351f96eebSZachary Turner // 451f96eebSZachary Turner // The LLVM Compiler Infrastructure 551f96eebSZachary Turner // 651f96eebSZachary Turner // This file is distributed under the University of Illinois Open Source 751f96eebSZachary Turner // License. See LICENSE.TXT for details. 851f96eebSZachary Turner // 951f96eebSZachary Turner //===----------------------------------------------------------------------===// 1051f96eebSZachary Turner 1151f96eebSZachary Turner #include "lldb/API/SBVariablesOptions.h" 1251f96eebSZachary Turner 1351f96eebSZachary Turner using namespace lldb; 1451f96eebSZachary Turner using namespace lldb_private; 1551f96eebSZachary Turner 16b9c1b51eSKate Stone class VariablesOptionsImpl { 1751f96eebSZachary Turner public: 18b9c1b51eSKate Stone VariablesOptionsImpl() 19*41ae8e74SKuba Mracek : m_include_arguments(false), m_include_recognized_arguments(false), 20*41ae8e74SKuba Mracek m_include_locals(false), m_include_statics(false), 21*41ae8e74SKuba Mracek m_in_scope_only(false), m_include_runtime_support_values(false), 22b9c1b51eSKate Stone m_use_dynamic(lldb::eNoDynamicValues) {} 2351f96eebSZachary Turner 2451f96eebSZachary Turner VariablesOptionsImpl(const VariablesOptionsImpl &) = default; 2551f96eebSZachary Turner 2651f96eebSZachary Turner ~VariablesOptionsImpl() = default; 2751f96eebSZachary Turner 28b9c1b51eSKate Stone VariablesOptionsImpl &operator=(const VariablesOptionsImpl &) = default; 2951f96eebSZachary Turner 30b9c1b51eSKate Stone bool GetIncludeArguments() const { return m_include_arguments; } 3151f96eebSZachary Turner 32b9c1b51eSKate Stone void SetIncludeArguments(bool b) { m_include_arguments = b; } 3351f96eebSZachary Turner 34*41ae8e74SKuba Mracek bool GetIncludeRecognizedArguments() const { 35*41ae8e74SKuba Mracek return m_include_recognized_arguments; 36*41ae8e74SKuba Mracek } 37*41ae8e74SKuba Mracek 38*41ae8e74SKuba Mracek void SetIncludeRecognizedArguments(bool b) { 39*41ae8e74SKuba Mracek m_include_recognized_arguments = b; 40*41ae8e74SKuba Mracek } 41*41ae8e74SKuba Mracek 42b9c1b51eSKate Stone bool GetIncludeLocals() const { return m_include_locals; } 4351f96eebSZachary Turner 44b9c1b51eSKate Stone void SetIncludeLocals(bool b) { m_include_locals = b; } 4551f96eebSZachary Turner 46b9c1b51eSKate Stone bool GetIncludeStatics() const { return m_include_statics; } 4751f96eebSZachary Turner 48b9c1b51eSKate Stone void SetIncludeStatics(bool b) { m_include_statics = b; } 4951f96eebSZachary Turner 50b9c1b51eSKate Stone bool GetInScopeOnly() const { return m_in_scope_only; } 5151f96eebSZachary Turner 52b9c1b51eSKate Stone void SetInScopeOnly(bool b) { m_in_scope_only = b; } 5351f96eebSZachary Turner 54b9c1b51eSKate Stone bool GetIncludeRuntimeSupportValues() const { 5551f96eebSZachary Turner return m_include_runtime_support_values; 5651f96eebSZachary Turner } 5751f96eebSZachary Turner 58b9c1b51eSKate Stone void SetIncludeRuntimeSupportValues(bool b) { 5951f96eebSZachary Turner m_include_runtime_support_values = b; 6051f96eebSZachary Turner } 6151f96eebSZachary Turner 62b9c1b51eSKate Stone lldb::DynamicValueType GetUseDynamic() const { return m_use_dynamic; } 6351f96eebSZachary Turner 64b9c1b51eSKate Stone void SetUseDynamic(lldb::DynamicValueType d) { m_use_dynamic = d; } 6551f96eebSZachary Turner 6651f96eebSZachary Turner private: 6751f96eebSZachary Turner bool m_include_arguments : 1; 68*41ae8e74SKuba Mracek bool m_include_recognized_arguments : 1; 6951f96eebSZachary Turner bool m_include_locals : 1; 7051f96eebSZachary Turner bool m_include_statics : 1; 7151f96eebSZachary Turner bool m_in_scope_only : 1; 7251f96eebSZachary Turner bool m_include_runtime_support_values : 1; 7351f96eebSZachary Turner lldb::DynamicValueType m_use_dynamic; 7451f96eebSZachary Turner }; 7551f96eebSZachary Turner 76b9c1b51eSKate Stone SBVariablesOptions::SBVariablesOptions() 77b9c1b51eSKate Stone : m_opaque_ap(new VariablesOptionsImpl()) {} 7851f96eebSZachary Turner 79b9c1b51eSKate Stone SBVariablesOptions::SBVariablesOptions(const SBVariablesOptions &options) 80b9c1b51eSKate Stone : m_opaque_ap(new VariablesOptionsImpl(options.ref())) {} 8151f96eebSZachary Turner 82b9c1b51eSKate Stone SBVariablesOptions &SBVariablesOptions:: 83b9c1b51eSKate Stone operator=(const SBVariablesOptions &options) { 8451f96eebSZachary Turner m_opaque_ap.reset(new VariablesOptionsImpl(options.ref())); 8551f96eebSZachary Turner return *this; 8651f96eebSZachary Turner } 8751f96eebSZachary Turner 8851f96eebSZachary Turner SBVariablesOptions::~SBVariablesOptions() = default; 8951f96eebSZachary Turner 90b9c1b51eSKate Stone bool SBVariablesOptions::IsValid() const { 9151f96eebSZachary Turner return m_opaque_ap.get() != nullptr; 9251f96eebSZachary Turner } 9351f96eebSZachary Turner 94b9c1b51eSKate Stone bool SBVariablesOptions::GetIncludeArguments() const { 9551f96eebSZachary Turner return m_opaque_ap->GetIncludeArguments(); 9651f96eebSZachary Turner } 9751f96eebSZachary Turner 98b9c1b51eSKate Stone void SBVariablesOptions::SetIncludeArguments(bool arguments) { 9951f96eebSZachary Turner m_opaque_ap->SetIncludeArguments(arguments); 10051f96eebSZachary Turner } 10151f96eebSZachary Turner 102*41ae8e74SKuba Mracek bool SBVariablesOptions::GetIncludeRecognizedArguments() const { 103*41ae8e74SKuba Mracek return m_opaque_ap->GetIncludeRecognizedArguments(); 104*41ae8e74SKuba Mracek } 105*41ae8e74SKuba Mracek 106*41ae8e74SKuba Mracek void SBVariablesOptions::SetIncludeRecognizedArguments(bool arguments) { 107*41ae8e74SKuba Mracek m_opaque_ap->SetIncludeRecognizedArguments(arguments); 108*41ae8e74SKuba Mracek } 109*41ae8e74SKuba Mracek 110b9c1b51eSKate Stone bool SBVariablesOptions::GetIncludeLocals() const { 11151f96eebSZachary Turner return m_opaque_ap->GetIncludeLocals(); 11251f96eebSZachary Turner } 11351f96eebSZachary Turner 114b9c1b51eSKate Stone void SBVariablesOptions::SetIncludeLocals(bool locals) { 11551f96eebSZachary Turner m_opaque_ap->SetIncludeLocals(locals); 11651f96eebSZachary Turner } 11751f96eebSZachary Turner 118b9c1b51eSKate Stone bool SBVariablesOptions::GetIncludeStatics() const { 11951f96eebSZachary Turner return m_opaque_ap->GetIncludeStatics(); 12051f96eebSZachary Turner } 12151f96eebSZachary Turner 122b9c1b51eSKate Stone void SBVariablesOptions::SetIncludeStatics(bool statics) { 12351f96eebSZachary Turner m_opaque_ap->SetIncludeStatics(statics); 12451f96eebSZachary Turner } 12551f96eebSZachary Turner 126b9c1b51eSKate Stone bool SBVariablesOptions::GetInScopeOnly() const { 12751f96eebSZachary Turner return m_opaque_ap->GetInScopeOnly(); 12851f96eebSZachary Turner } 12951f96eebSZachary Turner 130b9c1b51eSKate Stone void SBVariablesOptions::SetInScopeOnly(bool in_scope_only) { 13151f96eebSZachary Turner m_opaque_ap->SetInScopeOnly(in_scope_only); 13251f96eebSZachary Turner } 13351f96eebSZachary Turner 134b9c1b51eSKate Stone bool SBVariablesOptions::GetIncludeRuntimeSupportValues() const { 13551f96eebSZachary Turner return m_opaque_ap->GetIncludeRuntimeSupportValues(); 13651f96eebSZachary Turner } 13751f96eebSZachary Turner 138b9c1b51eSKate Stone void SBVariablesOptions::SetIncludeRuntimeSupportValues( 139b9c1b51eSKate Stone bool runtime_support_values) { 14051f96eebSZachary Turner m_opaque_ap->SetIncludeRuntimeSupportValues(runtime_support_values); 14151f96eebSZachary Turner } 14251f96eebSZachary Turner 143b9c1b51eSKate Stone lldb::DynamicValueType SBVariablesOptions::GetUseDynamic() const { 14451f96eebSZachary Turner return m_opaque_ap->GetUseDynamic(); 14551f96eebSZachary Turner } 14651f96eebSZachary Turner 147b9c1b51eSKate Stone void SBVariablesOptions::SetUseDynamic(lldb::DynamicValueType dynamic) { 14851f96eebSZachary Turner m_opaque_ap->SetUseDynamic(dynamic); 14951f96eebSZachary Turner } 15051f96eebSZachary Turner 151b9c1b51eSKate Stone VariablesOptionsImpl *SBVariablesOptions::operator->() { 15251f96eebSZachary Turner return m_opaque_ap.operator->(); 15351f96eebSZachary Turner } 15451f96eebSZachary Turner 155b9c1b51eSKate Stone const VariablesOptionsImpl *SBVariablesOptions::operator->() const { 15651f96eebSZachary Turner return m_opaque_ap.operator->(); 15751f96eebSZachary Turner } 15851f96eebSZachary Turner 159b9c1b51eSKate Stone VariablesOptionsImpl *SBVariablesOptions::get() { return m_opaque_ap.get(); } 16051f96eebSZachary Turner 161b9c1b51eSKate Stone VariablesOptionsImpl &SBVariablesOptions::ref() { return *m_opaque_ap; } 162b9c1b51eSKate Stone 163b9c1b51eSKate Stone const VariablesOptionsImpl &SBVariablesOptions::ref() const { 16451f96eebSZachary Turner return *m_opaque_ap; 16551f96eebSZachary Turner } 16651f96eebSZachary Turner 167b9c1b51eSKate Stone SBVariablesOptions::SBVariablesOptions(VariablesOptionsImpl *lldb_object_ptr) 168b9c1b51eSKate Stone : m_opaque_ap(std::move(lldb_object_ptr)) {} 16951f96eebSZachary Turner 170b9c1b51eSKate Stone void SBVariablesOptions::SetOptions(VariablesOptionsImpl *lldb_object_ptr) { 17151f96eebSZachary Turner m_opaque_ap.reset(std::move(lldb_object_ptr)); 17251f96eebSZachary Turner } 173