LLDB  mainline
OptionValueBoolean.h
Go to the documentation of this file.
1 //===-- OptionValueBoolean.h ------------------------------------*- C++ -*-===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #ifndef LLDB_INTERPRETER_OPTIONVALUEBOOLEAN_H
10 #define LLDB_INTERPRETER_OPTIONVALUEBOOLEAN_H
11 
13 
14 namespace lldb_private {
15 
16 class OptionValueBoolean : public Cloneable<OptionValueBoolean, OptionValue> {
17 public:
18  OptionValueBoolean(bool value)
19  : m_current_value(value), m_default_value(value) {}
20  OptionValueBoolean(bool current_value, bool default_value)
21  : m_current_value(current_value), m_default_value(default_value) {}
22 
23  ~OptionValueBoolean() override = default;
24 
25  // Virtual subclass pure virtual overrides
26 
27  OptionValue::Type GetType() const override { return eTypeBoolean; }
28 
29  void DumpValue(const ExecutionContext *exe_ctx, Stream &strm,
30  uint32_t dump_mask) override;
31 
32  llvm::json::Value ToJSON(const ExecutionContext *exe_ctx) override {
33  return m_current_value;
34  }
35 
36  Status
37  SetValueFromString(llvm::StringRef value,
39 
40  void Clear() override {
42  m_value_was_set = false;
43  }
44 
45  void AutoComplete(CommandInterpreter &interpreter,
46  CompletionRequest &request) override;
47 
48  // Subclass specific functions
49 
50  /// Convert to bool operator.
51  ///
52  /// This allows code to check a OptionValueBoolean in conditions.
53  ///
54  /// \code
55  /// OptionValueBoolean bool_value(...);
56  /// if (bool_value)
57  /// { ...
58  /// \endcode
59  ///
60  /// \return
61  /// /b True this object contains a valid namespace decl, \b
62  /// false otherwise.
63  explicit operator bool() const { return m_current_value; }
64 
65  const bool &operator=(bool b) {
66  m_current_value = b;
67  return m_current_value;
68  }
69 
70  bool GetCurrentValue() const { return m_current_value; }
71 
72  bool GetDefaultValue() const { return m_default_value; }
73 
74  void SetCurrentValue(bool value) { m_current_value = value; }
75 
76  void SetDefaultValue(bool value) { m_default_value = value; }
77 
78 protected:
81 };
82 
83 } // namespace lldb_private
84 
85 #endif // LLDB_INTERPRETER_OPTIONVALUEBOOLEAN_H
lldb_private::OptionValueBoolean::DumpValue
void DumpValue(const ExecutionContext *exe_ctx, Stream &strm, uint32_t dump_mask) override
Definition: OptionValueBoolean.cpp:20
lldb_private::ExecutionContext
Definition: ExecutionContext.h:292
lldb_private::OptionValueBoolean::SetCurrentValue
void SetCurrentValue(bool value)
Definition: OptionValueBoolean.h:74
lldb_private::OptionValueBoolean
Definition: OptionValueBoolean.h:16
lldb_private::OptionValueBoolean::AutoComplete
void AutoComplete(CommandInterpreter &interpreter, CompletionRequest &request) override
Definition: OptionValueBoolean.cpp:70
lldb_private::OptionValue::eTypeBoolean
@ eTypeBoolean
Definition: OptionValue.h:32
lldb_private::Stream
Definition: Stream.h:28
lldb_private::OptionValueBoolean::GetCurrentValue
bool GetCurrentValue() const
Definition: OptionValueBoolean.h:70
lldb_private::OptionValueBoolean::~OptionValueBoolean
~OptionValueBoolean() override=default
lldb_private::Cloneable
Definition: Cloneable.h:40
OptionValue.h
lldb_private::VarSetOperationType
VarSetOperationType
Settable state variable types.
Definition: lldb-private-enumerations.h:83
bool
lldb_private::OptionValueBoolean::ToJSON
llvm::json::Value ToJSON(const ExecutionContext *exe_ctx) override
Definition: OptionValueBoolean.h:32
lldb_private::CommandInterpreter
Definition: CommandInterpreter.h:214
lldb_private::OptionValueBoolean::GetType
OptionValue::Type GetType() const override
Definition: OptionValueBoolean.h:27
lldb_private::OptionValueBoolean::OptionValueBoolean
OptionValueBoolean(bool value)
Definition: OptionValueBoolean.h:18
lldb_private::OptionValueBoolean::Clear
void Clear() override
Definition: OptionValueBoolean.h:40
lldb_private::Status
Definition: Status.h:44
lldb_private::OptionValue::Type
Type
Definition: OptionValue.h:27
uint32_t
lldb_private::OptionValue::m_value_was_set
bool m_value_was_set
Definition: OptionValue.h:342
lldb_private::OptionValueBoolean::SetDefaultValue
void SetDefaultValue(bool value)
Definition: OptionValueBoolean.h:76
lldb_private::OptionValueBoolean::operator=
const bool & operator=(bool b)
Definition: OptionValueBoolean.h:65
lldb_private::OptionValueBoolean::OptionValueBoolean
OptionValueBoolean(bool current_value, bool default_value)
Definition: OptionValueBoolean.h:20
lldb_private
A class that represents a running process on the host machine.
Definition: SBCommandInterpreterRunOptions.h:16
lldb_private::OptionValueBoolean::m_current_value
bool m_current_value
Definition: OptionValueBoolean.h:79
lldb_private::OptionValueBoolean::GetDefaultValue
bool GetDefaultValue() const
Definition: OptionValueBoolean.h:72
lldb_private::OptionValueBoolean::SetValueFromString
Status SetValueFromString(llvm::StringRef value, VarSetOperationType op=eVarSetOperationAssign) override
Definition: OptionValueBoolean.cpp:33
lldb_private::OptionValueBoolean::m_default_value
bool m_default_value
Definition: OptionValueBoolean.h:80
lldb_private::CompletionRequest
Definition: CompletionRequest.h:100
lldb_private::eVarSetOperationAssign
@ eVarSetOperationAssign
Definition: lldb-private-enumerations.h:90