1*b9c1b51eSKate Stone //===-- SBVariablesOptions.cpp --------------------------------------*- C++ 2*b9c1b51eSKate 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 16*b9c1b51eSKate Stone class VariablesOptionsImpl { 1751f96eebSZachary Turner public: 18*b9c1b51eSKate Stone VariablesOptionsImpl() 19*b9c1b51eSKate Stone : m_include_arguments(false), m_include_locals(false), 20*b9c1b51eSKate Stone m_include_statics(false), m_in_scope_only(false), 2151f96eebSZachary Turner m_include_runtime_support_values(false), 22*b9c1b51eSKate Stone m_use_dynamic(lldb::eNoDynamicValues) {} 2351f96eebSZachary Turner 2451f96eebSZachary Turner VariablesOptionsImpl(const VariablesOptionsImpl &) = default; 2551f96eebSZachary Turner 2651f96eebSZachary Turner ~VariablesOptionsImpl() = default; 2751f96eebSZachary Turner 28*b9c1b51eSKate Stone VariablesOptionsImpl &operator=(const VariablesOptionsImpl &) = default; 2951f96eebSZachary Turner 30*b9c1b51eSKate Stone bool GetIncludeArguments() const { return m_include_arguments; } 3151f96eebSZachary Turner 32*b9c1b51eSKate Stone void SetIncludeArguments(bool b) { m_include_arguments = b; } 3351f96eebSZachary Turner 34*b9c1b51eSKate Stone bool GetIncludeLocals() const { return m_include_locals; } 3551f96eebSZachary Turner 36*b9c1b51eSKate Stone void SetIncludeLocals(bool b) { m_include_locals = b; } 3751f96eebSZachary Turner 38*b9c1b51eSKate Stone bool GetIncludeStatics() const { return m_include_statics; } 3951f96eebSZachary Turner 40*b9c1b51eSKate Stone void SetIncludeStatics(bool b) { m_include_statics = b; } 4151f96eebSZachary Turner 42*b9c1b51eSKate Stone bool GetInScopeOnly() const { return m_in_scope_only; } 4351f96eebSZachary Turner 44*b9c1b51eSKate Stone void SetInScopeOnly(bool b) { m_in_scope_only = b; } 4551f96eebSZachary Turner 46*b9c1b51eSKate Stone bool GetIncludeRuntimeSupportValues() const { 4751f96eebSZachary Turner return m_include_runtime_support_values; 4851f96eebSZachary Turner } 4951f96eebSZachary Turner 50*b9c1b51eSKate Stone void SetIncludeRuntimeSupportValues(bool b) { 5151f96eebSZachary Turner m_include_runtime_support_values = b; 5251f96eebSZachary Turner } 5351f96eebSZachary Turner 54*b9c1b51eSKate Stone lldb::DynamicValueType GetUseDynamic() const { return m_use_dynamic; } 5551f96eebSZachary Turner 56*b9c1b51eSKate Stone void SetUseDynamic(lldb::DynamicValueType d) { m_use_dynamic = d; } 5751f96eebSZachary Turner 5851f96eebSZachary Turner private: 5951f96eebSZachary Turner bool m_include_arguments : 1; 6051f96eebSZachary Turner bool m_include_locals : 1; 6151f96eebSZachary Turner bool m_include_statics : 1; 6251f96eebSZachary Turner bool m_in_scope_only : 1; 6351f96eebSZachary Turner bool m_include_runtime_support_values : 1; 6451f96eebSZachary Turner lldb::DynamicValueType m_use_dynamic; 6551f96eebSZachary Turner }; 6651f96eebSZachary Turner 67*b9c1b51eSKate Stone SBVariablesOptions::SBVariablesOptions() 68*b9c1b51eSKate Stone : m_opaque_ap(new VariablesOptionsImpl()) {} 6951f96eebSZachary Turner 70*b9c1b51eSKate Stone SBVariablesOptions::SBVariablesOptions(const SBVariablesOptions &options) 71*b9c1b51eSKate Stone : m_opaque_ap(new VariablesOptionsImpl(options.ref())) {} 7251f96eebSZachary Turner 73*b9c1b51eSKate Stone SBVariablesOptions &SBVariablesOptions:: 74*b9c1b51eSKate Stone operator=(const SBVariablesOptions &options) { 7551f96eebSZachary Turner m_opaque_ap.reset(new VariablesOptionsImpl(options.ref())); 7651f96eebSZachary Turner return *this; 7751f96eebSZachary Turner } 7851f96eebSZachary Turner 7951f96eebSZachary Turner SBVariablesOptions::~SBVariablesOptions() = default; 8051f96eebSZachary Turner 81*b9c1b51eSKate Stone bool SBVariablesOptions::IsValid() const { 8251f96eebSZachary Turner return m_opaque_ap.get() != nullptr; 8351f96eebSZachary Turner } 8451f96eebSZachary Turner 85*b9c1b51eSKate Stone bool SBVariablesOptions::GetIncludeArguments() const { 8651f96eebSZachary Turner return m_opaque_ap->GetIncludeArguments(); 8751f96eebSZachary Turner } 8851f96eebSZachary Turner 89*b9c1b51eSKate Stone void SBVariablesOptions::SetIncludeArguments(bool arguments) { 9051f96eebSZachary Turner m_opaque_ap->SetIncludeArguments(arguments); 9151f96eebSZachary Turner } 9251f96eebSZachary Turner 93*b9c1b51eSKate Stone bool SBVariablesOptions::GetIncludeLocals() const { 9451f96eebSZachary Turner return m_opaque_ap->GetIncludeLocals(); 9551f96eebSZachary Turner } 9651f96eebSZachary Turner 97*b9c1b51eSKate Stone void SBVariablesOptions::SetIncludeLocals(bool locals) { 9851f96eebSZachary Turner m_opaque_ap->SetIncludeLocals(locals); 9951f96eebSZachary Turner } 10051f96eebSZachary Turner 101*b9c1b51eSKate Stone bool SBVariablesOptions::GetIncludeStatics() const { 10251f96eebSZachary Turner return m_opaque_ap->GetIncludeStatics(); 10351f96eebSZachary Turner } 10451f96eebSZachary Turner 105*b9c1b51eSKate Stone void SBVariablesOptions::SetIncludeStatics(bool statics) { 10651f96eebSZachary Turner m_opaque_ap->SetIncludeStatics(statics); 10751f96eebSZachary Turner } 10851f96eebSZachary Turner 109*b9c1b51eSKate Stone bool SBVariablesOptions::GetInScopeOnly() const { 11051f96eebSZachary Turner return m_opaque_ap->GetInScopeOnly(); 11151f96eebSZachary Turner } 11251f96eebSZachary Turner 113*b9c1b51eSKate Stone void SBVariablesOptions::SetInScopeOnly(bool in_scope_only) { 11451f96eebSZachary Turner m_opaque_ap->SetInScopeOnly(in_scope_only); 11551f96eebSZachary Turner } 11651f96eebSZachary Turner 117*b9c1b51eSKate Stone bool SBVariablesOptions::GetIncludeRuntimeSupportValues() const { 11851f96eebSZachary Turner return m_opaque_ap->GetIncludeRuntimeSupportValues(); 11951f96eebSZachary Turner } 12051f96eebSZachary Turner 121*b9c1b51eSKate Stone void SBVariablesOptions::SetIncludeRuntimeSupportValues( 122*b9c1b51eSKate Stone bool runtime_support_values) { 12351f96eebSZachary Turner m_opaque_ap->SetIncludeRuntimeSupportValues(runtime_support_values); 12451f96eebSZachary Turner } 12551f96eebSZachary Turner 126*b9c1b51eSKate Stone lldb::DynamicValueType SBVariablesOptions::GetUseDynamic() const { 12751f96eebSZachary Turner return m_opaque_ap->GetUseDynamic(); 12851f96eebSZachary Turner } 12951f96eebSZachary Turner 130*b9c1b51eSKate Stone void SBVariablesOptions::SetUseDynamic(lldb::DynamicValueType dynamic) { 13151f96eebSZachary Turner m_opaque_ap->SetUseDynamic(dynamic); 13251f96eebSZachary Turner } 13351f96eebSZachary Turner 134*b9c1b51eSKate Stone VariablesOptionsImpl *SBVariablesOptions::operator->() { 13551f96eebSZachary Turner return m_opaque_ap.operator->(); 13651f96eebSZachary Turner } 13751f96eebSZachary Turner 138*b9c1b51eSKate Stone const VariablesOptionsImpl *SBVariablesOptions::operator->() const { 13951f96eebSZachary Turner return m_opaque_ap.operator->(); 14051f96eebSZachary Turner } 14151f96eebSZachary Turner 142*b9c1b51eSKate Stone VariablesOptionsImpl *SBVariablesOptions::get() { return m_opaque_ap.get(); } 14351f96eebSZachary Turner 144*b9c1b51eSKate Stone VariablesOptionsImpl &SBVariablesOptions::ref() { return *m_opaque_ap; } 145*b9c1b51eSKate Stone 146*b9c1b51eSKate Stone const VariablesOptionsImpl &SBVariablesOptions::ref() const { 14751f96eebSZachary Turner return *m_opaque_ap; 14851f96eebSZachary Turner } 14951f96eebSZachary Turner 150*b9c1b51eSKate Stone SBVariablesOptions::SBVariablesOptions(VariablesOptionsImpl *lldb_object_ptr) 151*b9c1b51eSKate Stone : m_opaque_ap(std::move(lldb_object_ptr)) {} 15251f96eebSZachary Turner 153*b9c1b51eSKate Stone void SBVariablesOptions::SetOptions(VariablesOptionsImpl *lldb_object_ptr) { 15451f96eebSZachary Turner m_opaque_ap.reset(std::move(lldb_object_ptr)); 15551f96eebSZachary Turner } 156