LLDB
mainline
llvm-project
lldb
include
lldb
Interpreter
OptionValueEnumeration.h
Go to the documentation of this file.
1
//===-- OptionValueEnumeration.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_OPTIONVALUEENUMERATION_H
10
#define LLDB_INTERPRETER_OPTIONVALUEENUMERATION_H
11
12
#include "
lldb/Core/UniqueCStringMap.h
"
13
#include "
lldb/Interpreter/OptionValue.h
"
14
#include "
lldb/Utility/ConstString.h
"
15
#include "
lldb/Utility/Status.h
"
16
#include "
lldb/Utility/Stream.h
"
17
#include "
lldb/Utility/StreamString.h
"
18
#include "
lldb/lldb-private-types.h
"
19
20
namespace
lldb_private
{
21
22
class
OptionValueEnumeration
23
:
public
Cloneable
<OptionValueEnumeration, OptionValue> {
24
public
:
25
typedef
int64_t
enum_type
;
26
struct
EnumeratorInfo
{
27
enum_type
value
;
28
const
char
*
description
;
29
};
30
typedef
UniqueCStringMap<EnumeratorInfo>
EnumerationMap
;
31
typedef
EnumerationMap::Entry
EnumerationMapEntry
;
32
33
OptionValueEnumeration
(
const
OptionEnumValues
&enumerators,
enum_type
value);
34
35
~OptionValueEnumeration
()
override
=
default
;
36
37
// Virtual subclass pure virtual overrides
38
39
OptionValue::Type
GetType
()
const override
{
return
eTypeEnum
; }
40
41
void
DumpValue
(
const
ExecutionContext
*exe_ctx,
Stream
&strm,
42
uint32_t dump_mask)
override
;
43
44
llvm::json::Value
ToJSON
(
const
ExecutionContext
*exe_ctx)
const override
;
45
46
Status
47
SetValueFromString
(llvm::StringRef value,
48
VarSetOperationType
op =
eVarSetOperationAssign
)
override
;
49
50
void
Clear
()
override
{
51
m_current_value
=
m_default_value
;
52
m_value_was_set
=
false
;
53
}
54
55
void
AutoComplete
(
CommandInterpreter
&interpreter,
56
CompletionRequest
&request)
override
;
57
58
// Subclass specific functions
59
60
enum_type
operator=
(
enum_type
value) {
61
m_current_value
= value;
62
return
m_current_value
;
63
}
64
65
enum_type
GetCurrentValue
()
const
{
return
m_current_value
; }
66
67
enum_type
GetDefaultValue
()
const
{
return
m_default_value
; }
68
69
void
SetCurrentValue
(
enum_type
value) {
m_current_value
= value; }
70
71
void
SetDefaultValue
(
enum_type
value) {
m_default_value
= value; }
72
73
protected
:
74
void
SetEnumerations
(
const
OptionEnumValues
&enumerators);
75
void
DumpEnum
(
Stream
&strm,
enum_type
value);
76
77
enum_type
m_current_value
;
78
enum_type
m_default_value
;
79
EnumerationMap
m_enumerations
;
80
};
81
82
}
// namespace lldb_private
83
84
#endif
// LLDB_INTERPRETER_OPTIONVALUEENUMERATION_H
ConstString.h
OptionValue.h
Status.h
StreamString.h
Stream.h
UniqueCStringMap.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:304
lldb_private::OptionValueEnumeration::EnumerationMapEntry
EnumerationMap::Entry EnumerationMapEntry
Definition
OptionValueEnumeration.h:31
lldb_private::OptionValueEnumeration::SetCurrentValue
void SetCurrentValue(enum_type value)
Definition
OptionValueEnumeration.h:69
lldb_private::OptionValueEnumeration::GetDefaultValue
enum_type GetDefaultValue() const
Definition
OptionValueEnumeration.h:67
lldb_private::OptionValueEnumeration::EnumerationMap
UniqueCStringMap< EnumeratorInfo > EnumerationMap
Definition
OptionValueEnumeration.h:30
lldb_private::OptionValueEnumeration::SetDefaultValue
void SetDefaultValue(enum_type value)
Definition
OptionValueEnumeration.h:71
lldb_private::OptionValueEnumeration::DumpEnum
void DumpEnum(Stream &strm, enum_type value)
Definition
OptionValueEnumeration.cpp:23
lldb_private::OptionValueEnumeration::SetEnumerations
void SetEnumerations(const OptionEnumValues &enumerators)
Definition
OptionValueEnumeration.cpp:105
lldb_private::OptionValueEnumeration::GetType
OptionValue::Type GetType() const override
Definition
OptionValueEnumeration.h:39
lldb_private::OptionValueEnumeration::SetValueFromString
Status SetValueFromString(llvm::StringRef value, VarSetOperationType op=eVarSetOperationAssign) override
Definition
OptionValueEnumeration.cpp:60
lldb_private::OptionValueEnumeration::enum_type
int64_t enum_type
Definition
OptionValueEnumeration.h:25
lldb_private::OptionValueEnumeration::~OptionValueEnumeration
~OptionValueEnumeration() override=default
lldb_private::OptionValueEnumeration::m_enumerations
EnumerationMap m_enumerations
Definition
OptionValueEnumeration.h:79
lldb_private::OptionValueEnumeration::ToJSON
llvm::json::Value ToJSON(const ExecutionContext *exe_ctx) const override
Definition
OptionValueEnumeration.cpp:51
lldb_private::OptionValueEnumeration::DumpValue
void DumpValue(const ExecutionContext *exe_ctx, Stream &strm, uint32_t dump_mask) override
Definition
OptionValueEnumeration.cpp:34
lldb_private::OptionValueEnumeration::OptionValueEnumeration
OptionValueEnumeration(const OptionEnumValues &enumerators, enum_type value)
Definition
OptionValueEnumeration.cpp:17
lldb_private::OptionValueEnumeration::Clear
void Clear() override
Definition
OptionValueEnumeration.h:50
lldb_private::OptionValueEnumeration::m_default_value
enum_type m_default_value
Definition
OptionValueEnumeration.h:78
lldb_private::OptionValueEnumeration::operator=
enum_type operator=(enum_type value)
Definition
OptionValueEnumeration.h:60
lldb_private::OptionValueEnumeration::m_current_value
enum_type m_current_value
Definition
OptionValueEnumeration.h:77
lldb_private::OptionValueEnumeration::AutoComplete
void AutoComplete(CommandInterpreter &interpreter, CompletionRequest &request) override
Definition
OptionValueEnumeration.cpp:118
lldb_private::OptionValueEnumeration::GetCurrentValue
enum_type GetCurrentValue() const
Definition
OptionValueEnumeration.h:65
lldb_private::OptionValue::m_value_was_set
bool m_value_was_set
Definition
OptionValue.h:359
lldb_private::OptionValue::Type
Type
Definition
OptionValue.h:34
lldb_private::OptionValue::eTypeEnum
@ eTypeEnum
Definition
OptionValue.h:42
lldb_private::Status
An error handling class.
Definition
Status.h:118
lldb_private::Stream
A stream class that can stream formatted output to a file.
Definition
Stream.h:28
lldb_private::UniqueCStringMap
Definition
UniqueCStringMap.h:26
lldb-private-types.h
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:86
lldb_private::eVarSetOperationAssign
@ eVarSetOperationAssign
Definition
lldb-private-enumerations.h:93
lldb_private::OptionEnumValues
llvm::ArrayRef< OptionEnumValueElement > OptionEnumValues
Definition
lldb-private-types.h:127
lldb_private::OptionValueEnumeration::EnumeratorInfo
Definition
OptionValueEnumeration.h:26
lldb_private::OptionValueEnumeration::EnumeratorInfo::value
enum_type value
Definition
OptionValueEnumeration.h:27
lldb_private::OptionValueEnumeration::EnumeratorInfo::description
const char * description
Definition
OptionValueEnumeration.h:28
Generated on
for LLDB by
1.14.0