1 //===-- SBVariablesOptions.h ------------------------------------------*- 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 #ifndef LLDB_SBVariablesOptions_h_
12 #define LLDB_SBVariablesOptions_h_
13 
14 #include "lldb/API/SBDefines.h"
15 
16 class VariablesOptionsImpl;
17 
18 namespace lldb {
19 
20 class LLDB_API SBVariablesOptions {
21 public:
22   SBVariablesOptions();
23 
24   SBVariablesOptions(const SBVariablesOptions &options);
25 
26   SBVariablesOptions &operator=(const SBVariablesOptions &options);
27 
28   ~SBVariablesOptions();
29 
30   bool IsValid() const;
31 
32   bool GetIncludeArguments() const;
33 
34   void SetIncludeArguments(bool);
35 
36   bool GetIncludeRecognizedArguments(const lldb::SBTarget &) const;
37 
38   void SetIncludeRecognizedArguments(bool);
39 
40   bool GetIncludeLocals() const;
41 
42   void SetIncludeLocals(bool);
43 
44   bool GetIncludeStatics() const;
45 
46   void SetIncludeStatics(bool);
47 
48   bool GetInScopeOnly() const;
49 
50   void SetInScopeOnly(bool);
51 
52   bool GetIncludeRuntimeSupportValues() const;
53 
54   void SetIncludeRuntimeSupportValues(bool);
55 
56   lldb::DynamicValueType GetUseDynamic() const;
57 
58   void SetUseDynamic(lldb::DynamicValueType);
59 
60 protected:
61   VariablesOptionsImpl *operator->();
62 
63   const VariablesOptionsImpl *operator->() const;
64 
65   VariablesOptionsImpl *get();
66 
67   VariablesOptionsImpl &ref();
68 
69   const VariablesOptionsImpl &ref() const;
70 
71   SBVariablesOptions(VariablesOptionsImpl *lldb_object_ptr);
72 
73   void SetOptions(VariablesOptionsImpl *lldb_object_ptr);
74 
75 private:
76   std::unique_ptr<VariablesOptionsImpl> m_opaque_ap;
77 };
78 
79 } // namespace lldb
80 
81 #endif // LLDB_SBValue_h_
82