1*51f96eebSZachary Turner //===-- SBVariablesOptions.cpp --------------------------------------*- C++ -*-===// 2*51f96eebSZachary Turner // 3*51f96eebSZachary Turner // The LLVM Compiler Infrastructure 4*51f96eebSZachary Turner // 5*51f96eebSZachary Turner // This file is distributed under the University of Illinois Open Source 6*51f96eebSZachary Turner // License. See LICENSE.TXT for details. 7*51f96eebSZachary Turner // 8*51f96eebSZachary Turner //===----------------------------------------------------------------------===// 9*51f96eebSZachary Turner 10*51f96eebSZachary Turner 11*51f96eebSZachary Turner #include "lldb/API/SBVariablesOptions.h" 12*51f96eebSZachary Turner 13*51f96eebSZachary Turner using namespace lldb; 14*51f96eebSZachary Turner using namespace lldb_private; 15*51f96eebSZachary Turner 16*51f96eebSZachary Turner class VariablesOptionsImpl 17*51f96eebSZachary Turner { 18*51f96eebSZachary Turner public: 19*51f96eebSZachary Turner VariablesOptionsImpl () : 20*51f96eebSZachary Turner m_include_arguments(false), 21*51f96eebSZachary Turner m_include_locals(false), 22*51f96eebSZachary Turner m_include_statics(false), 23*51f96eebSZachary Turner m_in_scope_only(false), 24*51f96eebSZachary Turner m_include_runtime_support_values(false), 25*51f96eebSZachary Turner m_use_dynamic(lldb::eNoDynamicValues) 26*51f96eebSZachary Turner {} 27*51f96eebSZachary Turner 28*51f96eebSZachary Turner VariablesOptionsImpl (const VariablesOptionsImpl&) = default; 29*51f96eebSZachary Turner 30*51f96eebSZachary Turner ~VariablesOptionsImpl () = default; 31*51f96eebSZachary Turner 32*51f96eebSZachary Turner VariablesOptionsImpl& 33*51f96eebSZachary Turner operator = (const VariablesOptionsImpl&) = default; 34*51f96eebSZachary Turner 35*51f96eebSZachary Turner bool 36*51f96eebSZachary Turner GetIncludeArguments () const 37*51f96eebSZachary Turner { 38*51f96eebSZachary Turner return m_include_arguments; 39*51f96eebSZachary Turner } 40*51f96eebSZachary Turner 41*51f96eebSZachary Turner void 42*51f96eebSZachary Turner SetIncludeArguments (bool b) 43*51f96eebSZachary Turner { 44*51f96eebSZachary Turner m_include_arguments = b; 45*51f96eebSZachary Turner } 46*51f96eebSZachary Turner 47*51f96eebSZachary Turner bool 48*51f96eebSZachary Turner GetIncludeLocals () const 49*51f96eebSZachary Turner { 50*51f96eebSZachary Turner return m_include_locals; 51*51f96eebSZachary Turner } 52*51f96eebSZachary Turner 53*51f96eebSZachary Turner void 54*51f96eebSZachary Turner SetIncludeLocals (bool b) 55*51f96eebSZachary Turner { 56*51f96eebSZachary Turner m_include_locals = b; 57*51f96eebSZachary Turner } 58*51f96eebSZachary Turner 59*51f96eebSZachary Turner bool 60*51f96eebSZachary Turner GetIncludeStatics () const 61*51f96eebSZachary Turner { 62*51f96eebSZachary Turner return m_include_statics; 63*51f96eebSZachary Turner } 64*51f96eebSZachary Turner 65*51f96eebSZachary Turner void 66*51f96eebSZachary Turner SetIncludeStatics (bool b) 67*51f96eebSZachary Turner { 68*51f96eebSZachary Turner m_include_statics = b; 69*51f96eebSZachary Turner } 70*51f96eebSZachary Turner 71*51f96eebSZachary Turner bool 72*51f96eebSZachary Turner GetInScopeOnly () const 73*51f96eebSZachary Turner { 74*51f96eebSZachary Turner return m_in_scope_only; 75*51f96eebSZachary Turner } 76*51f96eebSZachary Turner 77*51f96eebSZachary Turner void 78*51f96eebSZachary Turner SetInScopeOnly (bool b) 79*51f96eebSZachary Turner { 80*51f96eebSZachary Turner m_in_scope_only = b; 81*51f96eebSZachary Turner } 82*51f96eebSZachary Turner 83*51f96eebSZachary Turner bool 84*51f96eebSZachary Turner GetIncludeRuntimeSupportValues () const 85*51f96eebSZachary Turner { 86*51f96eebSZachary Turner return m_include_runtime_support_values; 87*51f96eebSZachary Turner } 88*51f96eebSZachary Turner 89*51f96eebSZachary Turner void 90*51f96eebSZachary Turner SetIncludeRuntimeSupportValues (bool b) 91*51f96eebSZachary Turner { 92*51f96eebSZachary Turner m_include_runtime_support_values = b; 93*51f96eebSZachary Turner } 94*51f96eebSZachary Turner 95*51f96eebSZachary Turner lldb::DynamicValueType 96*51f96eebSZachary Turner GetUseDynamic () const 97*51f96eebSZachary Turner { 98*51f96eebSZachary Turner return m_use_dynamic; 99*51f96eebSZachary Turner } 100*51f96eebSZachary Turner 101*51f96eebSZachary Turner void 102*51f96eebSZachary Turner SetUseDynamic (lldb::DynamicValueType d) 103*51f96eebSZachary Turner { 104*51f96eebSZachary Turner m_use_dynamic = d; 105*51f96eebSZachary Turner } 106*51f96eebSZachary Turner 107*51f96eebSZachary Turner 108*51f96eebSZachary Turner private: 109*51f96eebSZachary Turner bool m_include_arguments : 1; 110*51f96eebSZachary Turner bool m_include_locals : 1; 111*51f96eebSZachary Turner bool m_include_statics : 1; 112*51f96eebSZachary Turner bool m_in_scope_only : 1; 113*51f96eebSZachary Turner bool m_include_runtime_support_values : 1; 114*51f96eebSZachary Turner lldb::DynamicValueType m_use_dynamic; 115*51f96eebSZachary Turner }; 116*51f96eebSZachary Turner 117*51f96eebSZachary Turner SBVariablesOptions::SBVariablesOptions () : 118*51f96eebSZachary Turner m_opaque_ap(new VariablesOptionsImpl()) 119*51f96eebSZachary Turner { 120*51f96eebSZachary Turner } 121*51f96eebSZachary Turner 122*51f96eebSZachary Turner SBVariablesOptions::SBVariablesOptions (const SBVariablesOptions& options) : 123*51f96eebSZachary Turner m_opaque_ap(new VariablesOptionsImpl(options.ref())) 124*51f96eebSZachary Turner { 125*51f96eebSZachary Turner } 126*51f96eebSZachary Turner 127*51f96eebSZachary Turner SBVariablesOptions& 128*51f96eebSZachary Turner SBVariablesOptions::operator = (const SBVariablesOptions& options) 129*51f96eebSZachary Turner { 130*51f96eebSZachary Turner m_opaque_ap.reset(new VariablesOptionsImpl(options.ref())); 131*51f96eebSZachary Turner return *this; 132*51f96eebSZachary Turner } 133*51f96eebSZachary Turner 134*51f96eebSZachary Turner SBVariablesOptions::~SBVariablesOptions () = default; 135*51f96eebSZachary Turner 136*51f96eebSZachary Turner bool 137*51f96eebSZachary Turner SBVariablesOptions::IsValid () const 138*51f96eebSZachary Turner { 139*51f96eebSZachary Turner return m_opaque_ap.get() != nullptr; 140*51f96eebSZachary Turner } 141*51f96eebSZachary Turner 142*51f96eebSZachary Turner bool 143*51f96eebSZachary Turner SBVariablesOptions::GetIncludeArguments () const 144*51f96eebSZachary Turner { 145*51f96eebSZachary Turner return m_opaque_ap->GetIncludeArguments(); 146*51f96eebSZachary Turner } 147*51f96eebSZachary Turner 148*51f96eebSZachary Turner void 149*51f96eebSZachary Turner SBVariablesOptions::SetIncludeArguments (bool arguments) 150*51f96eebSZachary Turner { 151*51f96eebSZachary Turner m_opaque_ap->SetIncludeArguments(arguments); 152*51f96eebSZachary Turner } 153*51f96eebSZachary Turner 154*51f96eebSZachary Turner bool 155*51f96eebSZachary Turner SBVariablesOptions::GetIncludeLocals () const 156*51f96eebSZachary Turner { 157*51f96eebSZachary Turner return m_opaque_ap->GetIncludeLocals(); 158*51f96eebSZachary Turner } 159*51f96eebSZachary Turner 160*51f96eebSZachary Turner void 161*51f96eebSZachary Turner SBVariablesOptions::SetIncludeLocals (bool locals) 162*51f96eebSZachary Turner { 163*51f96eebSZachary Turner m_opaque_ap->SetIncludeLocals(locals); 164*51f96eebSZachary Turner } 165*51f96eebSZachary Turner 166*51f96eebSZachary Turner bool 167*51f96eebSZachary Turner SBVariablesOptions::GetIncludeStatics () const 168*51f96eebSZachary Turner { 169*51f96eebSZachary Turner return m_opaque_ap->GetIncludeStatics(); 170*51f96eebSZachary Turner } 171*51f96eebSZachary Turner 172*51f96eebSZachary Turner void 173*51f96eebSZachary Turner SBVariablesOptions::SetIncludeStatics (bool statics) 174*51f96eebSZachary Turner { 175*51f96eebSZachary Turner m_opaque_ap->SetIncludeStatics(statics); 176*51f96eebSZachary Turner } 177*51f96eebSZachary Turner 178*51f96eebSZachary Turner bool 179*51f96eebSZachary Turner SBVariablesOptions::GetInScopeOnly () const 180*51f96eebSZachary Turner { 181*51f96eebSZachary Turner return m_opaque_ap->GetInScopeOnly(); 182*51f96eebSZachary Turner } 183*51f96eebSZachary Turner 184*51f96eebSZachary Turner void 185*51f96eebSZachary Turner SBVariablesOptions::SetInScopeOnly (bool in_scope_only) 186*51f96eebSZachary Turner { 187*51f96eebSZachary Turner m_opaque_ap->SetInScopeOnly(in_scope_only); 188*51f96eebSZachary Turner } 189*51f96eebSZachary Turner 190*51f96eebSZachary Turner bool 191*51f96eebSZachary Turner SBVariablesOptions::GetIncludeRuntimeSupportValues () const 192*51f96eebSZachary Turner { 193*51f96eebSZachary Turner return m_opaque_ap->GetIncludeRuntimeSupportValues(); 194*51f96eebSZachary Turner } 195*51f96eebSZachary Turner 196*51f96eebSZachary Turner void 197*51f96eebSZachary Turner SBVariablesOptions::SetIncludeRuntimeSupportValues (bool runtime_support_values) 198*51f96eebSZachary Turner { 199*51f96eebSZachary Turner m_opaque_ap->SetIncludeRuntimeSupportValues(runtime_support_values); 200*51f96eebSZachary Turner } 201*51f96eebSZachary Turner 202*51f96eebSZachary Turner lldb::DynamicValueType 203*51f96eebSZachary Turner SBVariablesOptions::GetUseDynamic () const 204*51f96eebSZachary Turner { 205*51f96eebSZachary Turner return m_opaque_ap->GetUseDynamic(); 206*51f96eebSZachary Turner } 207*51f96eebSZachary Turner 208*51f96eebSZachary Turner void 209*51f96eebSZachary Turner SBVariablesOptions::SetUseDynamic (lldb::DynamicValueType dynamic) 210*51f96eebSZachary Turner { 211*51f96eebSZachary Turner m_opaque_ap->SetUseDynamic(dynamic); 212*51f96eebSZachary Turner } 213*51f96eebSZachary Turner 214*51f96eebSZachary Turner VariablesOptionsImpl * 215*51f96eebSZachary Turner SBVariablesOptions::operator->() 216*51f96eebSZachary Turner { 217*51f96eebSZachary Turner return m_opaque_ap.operator->(); 218*51f96eebSZachary Turner } 219*51f96eebSZachary Turner 220*51f96eebSZachary Turner const VariablesOptionsImpl * 221*51f96eebSZachary Turner SBVariablesOptions::operator->() const 222*51f96eebSZachary Turner { 223*51f96eebSZachary Turner return m_opaque_ap.operator->(); 224*51f96eebSZachary Turner } 225*51f96eebSZachary Turner 226*51f96eebSZachary Turner VariablesOptionsImpl * 227*51f96eebSZachary Turner SBVariablesOptions::get () 228*51f96eebSZachary Turner { 229*51f96eebSZachary Turner return m_opaque_ap.get(); 230*51f96eebSZachary Turner } 231*51f96eebSZachary Turner 232*51f96eebSZachary Turner VariablesOptionsImpl & 233*51f96eebSZachary Turner SBVariablesOptions::ref() 234*51f96eebSZachary Turner { 235*51f96eebSZachary Turner return *m_opaque_ap; 236*51f96eebSZachary Turner } 237*51f96eebSZachary Turner 238*51f96eebSZachary Turner const VariablesOptionsImpl & 239*51f96eebSZachary Turner SBVariablesOptions::ref() const 240*51f96eebSZachary Turner { 241*51f96eebSZachary Turner return *m_opaque_ap; 242*51f96eebSZachary Turner } 243*51f96eebSZachary Turner 244*51f96eebSZachary Turner SBVariablesOptions::SBVariablesOptions (VariablesOptionsImpl *lldb_object_ptr) : 245*51f96eebSZachary Turner m_opaque_ap(std::move(lldb_object_ptr)) 246*51f96eebSZachary Turner { 247*51f96eebSZachary Turner } 248*51f96eebSZachary Turner 249*51f96eebSZachary Turner void 250*51f96eebSZachary Turner SBVariablesOptions::SetOptions (VariablesOptionsImpl *lldb_object_ptr) 251*51f96eebSZachary Turner { 252*51f96eebSZachary Turner m_opaque_ap.reset(std::move(lldb_object_ptr)); 253*51f96eebSZachary Turner } 254*51f96eebSZachary Turner 255