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() 1941ae8e74SKuba Mracek : m_include_arguments(false), m_include_recognized_arguments(false), 2041ae8e74SKuba Mracek m_include_locals(false), m_include_statics(false), 2141ae8e74SKuba 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 3441ae8e74SKuba Mracek bool GetIncludeRecognizedArguments() const { 3541ae8e74SKuba Mracek return m_include_recognized_arguments; 3641ae8e74SKuba Mracek } 3741ae8e74SKuba Mracek 3841ae8e74SKuba Mracek void SetIncludeRecognizedArguments(bool b) { 3941ae8e74SKuba Mracek m_include_recognized_arguments = b; 4041ae8e74SKuba Mracek } 4141ae8e74SKuba 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; 6841ae8e74SKuba 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 90*3447077aSJonas Devlieghere bool SBVariablesOptions::IsValid() const { return m_opaque_ap != nullptr; } 9151f96eebSZachary Turner 92b9c1b51eSKate Stone bool SBVariablesOptions::GetIncludeArguments() const { 9351f96eebSZachary Turner return m_opaque_ap->GetIncludeArguments(); 9451f96eebSZachary Turner } 9551f96eebSZachary Turner 96b9c1b51eSKate Stone void SBVariablesOptions::SetIncludeArguments(bool arguments) { 9751f96eebSZachary Turner m_opaque_ap->SetIncludeArguments(arguments); 9851f96eebSZachary Turner } 9951f96eebSZachary Turner 10041ae8e74SKuba Mracek bool SBVariablesOptions::GetIncludeRecognizedArguments() const { 10141ae8e74SKuba Mracek return m_opaque_ap->GetIncludeRecognizedArguments(); 10241ae8e74SKuba Mracek } 10341ae8e74SKuba Mracek 10441ae8e74SKuba Mracek void SBVariablesOptions::SetIncludeRecognizedArguments(bool arguments) { 10541ae8e74SKuba Mracek m_opaque_ap->SetIncludeRecognizedArguments(arguments); 10641ae8e74SKuba Mracek } 10741ae8e74SKuba Mracek 108b9c1b51eSKate Stone bool SBVariablesOptions::GetIncludeLocals() const { 10951f96eebSZachary Turner return m_opaque_ap->GetIncludeLocals(); 11051f96eebSZachary Turner } 11151f96eebSZachary Turner 112b9c1b51eSKate Stone void SBVariablesOptions::SetIncludeLocals(bool locals) { 11351f96eebSZachary Turner m_opaque_ap->SetIncludeLocals(locals); 11451f96eebSZachary Turner } 11551f96eebSZachary Turner 116b9c1b51eSKate Stone bool SBVariablesOptions::GetIncludeStatics() const { 11751f96eebSZachary Turner return m_opaque_ap->GetIncludeStatics(); 11851f96eebSZachary Turner } 11951f96eebSZachary Turner 120b9c1b51eSKate Stone void SBVariablesOptions::SetIncludeStatics(bool statics) { 12151f96eebSZachary Turner m_opaque_ap->SetIncludeStatics(statics); 12251f96eebSZachary Turner } 12351f96eebSZachary Turner 124b9c1b51eSKate Stone bool SBVariablesOptions::GetInScopeOnly() const { 12551f96eebSZachary Turner return m_opaque_ap->GetInScopeOnly(); 12651f96eebSZachary Turner } 12751f96eebSZachary Turner 128b9c1b51eSKate Stone void SBVariablesOptions::SetInScopeOnly(bool in_scope_only) { 12951f96eebSZachary Turner m_opaque_ap->SetInScopeOnly(in_scope_only); 13051f96eebSZachary Turner } 13151f96eebSZachary Turner 132b9c1b51eSKate Stone bool SBVariablesOptions::GetIncludeRuntimeSupportValues() const { 13351f96eebSZachary Turner return m_opaque_ap->GetIncludeRuntimeSupportValues(); 13451f96eebSZachary Turner } 13551f96eebSZachary Turner 136b9c1b51eSKate Stone void SBVariablesOptions::SetIncludeRuntimeSupportValues( 137b9c1b51eSKate Stone bool runtime_support_values) { 13851f96eebSZachary Turner m_opaque_ap->SetIncludeRuntimeSupportValues(runtime_support_values); 13951f96eebSZachary Turner } 14051f96eebSZachary Turner 141b9c1b51eSKate Stone lldb::DynamicValueType SBVariablesOptions::GetUseDynamic() const { 14251f96eebSZachary Turner return m_opaque_ap->GetUseDynamic(); 14351f96eebSZachary Turner } 14451f96eebSZachary Turner 145b9c1b51eSKate Stone void SBVariablesOptions::SetUseDynamic(lldb::DynamicValueType dynamic) { 14651f96eebSZachary Turner m_opaque_ap->SetUseDynamic(dynamic); 14751f96eebSZachary Turner } 14851f96eebSZachary Turner 149b9c1b51eSKate Stone VariablesOptionsImpl *SBVariablesOptions::operator->() { 15051f96eebSZachary Turner return m_opaque_ap.operator->(); 15151f96eebSZachary Turner } 15251f96eebSZachary Turner 153b9c1b51eSKate Stone const VariablesOptionsImpl *SBVariablesOptions::operator->() const { 15451f96eebSZachary Turner return m_opaque_ap.operator->(); 15551f96eebSZachary Turner } 15651f96eebSZachary Turner 157b9c1b51eSKate Stone VariablesOptionsImpl *SBVariablesOptions::get() { return m_opaque_ap.get(); } 15851f96eebSZachary Turner 159b9c1b51eSKate Stone VariablesOptionsImpl &SBVariablesOptions::ref() { return *m_opaque_ap; } 160b9c1b51eSKate Stone 161b9c1b51eSKate Stone const VariablesOptionsImpl &SBVariablesOptions::ref() const { 16251f96eebSZachary Turner return *m_opaque_ap; 16351f96eebSZachary Turner } 16451f96eebSZachary Turner 165b9c1b51eSKate Stone SBVariablesOptions::SBVariablesOptions(VariablesOptionsImpl *lldb_object_ptr) 166b9c1b51eSKate Stone : m_opaque_ap(std::move(lldb_object_ptr)) {} 16751f96eebSZachary Turner 168b9c1b51eSKate Stone void SBVariablesOptions::SetOptions(VariablesOptionsImpl *lldb_object_ptr) { 16951f96eebSZachary Turner m_opaque_ap.reset(std::move(lldb_object_ptr)); 17051f96eebSZachary Turner } 171