LLDB
mainline
llvm-project
lldb
include
lldb
Interpreter
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
12
#include "
lldb/Interpreter/OptionValue.h
"
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,
38
VarSetOperationType
op =
eVarSetOperationAssign
)
override
;
39
40
void
Clear
()
override
{
41
m_current_value
=
m_default_value
;
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
:
79
bool
m_current_value
;
80
bool
m_default_value
;
81
};
82
83
}
// namespace lldb_private
84
85
#endif
// LLDB_INTERPRETER_OPTIONVALUEBOOLEAN_H
OptionValue.h
lldb_private::Cloneable
A class that implements CRTP-based "virtual constructor" idiom.
Definition:
Cloneable.h:40
lldb_private::CommandInterpreter
Definition:
CommandInterpreter.h:231
lldb_private::CompletionRequest
"lldb/Utility/ArgCompletionRequest.h"
Definition:
CompletionRequest.h:100
lldb_private::ExecutionContext
"lldb/Target/ExecutionContext.h" A class that contains an execution context.
Definition:
ExecutionContext.h:292
lldb_private::OptionValueBoolean
Definition:
OptionValueBoolean.h:16
lldb_private::OptionValueBoolean::GetDefaultValue
bool GetDefaultValue() const
Definition:
OptionValueBoolean.h:72
lldb_private::OptionValueBoolean::SetCurrentValue
void SetCurrentValue(bool value)
Definition:
OptionValueBoolean.h:74
lldb_private::OptionValueBoolean::ToJSON
llvm::json::Value ToJSON(const ExecutionContext *exe_ctx) override
Definition:
OptionValueBoolean.h:32
lldb_private::OptionValueBoolean::OptionValueBoolean
OptionValueBoolean(bool current_value, bool default_value)
Definition:
OptionValueBoolean.h:20
lldb_private::OptionValueBoolean::GetType
OptionValue::Type GetType() const override
Definition:
OptionValueBoolean.h:27
lldb_private::OptionValueBoolean::Clear
void Clear() override
Definition:
OptionValueBoolean.h:40
lldb_private::OptionValueBoolean::m_current_value
bool m_current_value
Definition:
OptionValueBoolean.h:79
lldb_private::OptionValueBoolean::DumpValue
void DumpValue(const ExecutionContext *exe_ctx, Stream &strm, uint32_t dump_mask) override
Definition:
OptionValueBoolean.cpp:20
lldb_private::OptionValueBoolean::OptionValueBoolean
OptionValueBoolean(bool value)
Definition:
OptionValueBoolean.h:18
lldb_private::OptionValueBoolean::m_default_value
bool m_default_value
Definition:
OptionValueBoolean.h:80
lldb_private::OptionValueBoolean::~OptionValueBoolean
~OptionValueBoolean() override=default
lldb_private::OptionValueBoolean::SetDefaultValue
void SetDefaultValue(bool value)
Definition:
OptionValueBoolean.h:76
lldb_private::OptionValueBoolean::SetValueFromString
Status SetValueFromString(llvm::StringRef value, VarSetOperationType op=eVarSetOperationAssign) override
Definition:
OptionValueBoolean.cpp:33
lldb_private::OptionValueBoolean::GetCurrentValue
bool GetCurrentValue() const
Definition:
OptionValueBoolean.h:70
lldb_private::OptionValueBoolean::AutoComplete
void AutoComplete(CommandInterpreter &interpreter, CompletionRequest &request) override
Definition:
OptionValueBoolean.cpp:70
lldb_private::OptionValueBoolean::operator=
const bool & operator=(bool b)
Definition:
OptionValueBoolean.h:65
lldb_private::OptionValue::m_value_was_set
bool m_value_was_set
Definition:
OptionValue.h:346
lldb_private::OptionValue::Type
Type
Definition:
OptionValue.h:33
lldb_private::OptionValue::eTypeBoolean
@ eTypeBoolean
Definition:
OptionValue.h:38
lldb_private::Status
An error handling class.
Definition:
Status.h:44
lldb_private::Stream
A stream class that can stream formatted output to a file.
Definition:
Stream.h:28
lldb_private
A class that represents a running process on the host machine.
Definition:
SBAddressRange.h:14
lldb_private::VarSetOperationType
VarSetOperationType
Settable state variable types.
Definition:
lldb-private-enumerations.h:85
lldb_private::eVarSetOperationAssign
@ eVarSetOperationAssign
Definition:
lldb-private-enumerations.h:92
Generated on Wed Nov 20 2024 18:14:35 for LLDB by
1.9.6