LLDB
mainline
llvm-project
lldb
include
lldb
Interpreter
OptionValueFileSpecList.h
Go to the documentation of this file.
1
//===-- OptionValueFileSpecList.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_OPTIONVALUEFILESPECLIST_H
10
#define LLDB_INTERPRETER_OPTIONVALUEFILESPECLIST_H
11
12
#include <mutex>
13
14
#include "
lldb/Interpreter/OptionValue.h
"
15
#include "
lldb/Utility/FileSpecList.h
"
16
17
namespace
lldb_private
{
18
19
class
OptionValueFileSpecList
20
:
public
Cloneable
<OptionValueFileSpecList, OptionValue> {
21
public
:
22
OptionValueFileSpecList
() =
default
;
23
24
OptionValueFileSpecList
(
const
OptionValueFileSpecList
&other)
25
:
Cloneable
(other),
m_current_value
(other.
GetCurrentValue
()) {}
26
27
~OptionValueFileSpecList
()
override
=
default
;
28
29
// Virtual subclass pure virtual overrides
30
31
OptionValue::Type
GetType
()
const override
{
return
eTypeFileSpecList
; }
32
33
void
DumpValue
(
const
ExecutionContext
*exe_ctx,
Stream
&strm,
34
uint32_t dump_mask)
override
;
35
36
llvm::json::Value
ToJSON
(
const
ExecutionContext
*exe_ctx)
const override
;
37
38
Status
39
SetValueFromString
(llvm::StringRef value,
40
VarSetOperationType
op =
eVarSetOperationAssign
)
override
;
41
42
void
Clear
()
override
{
43
std::lock_guard<std::recursive_mutex> lock(
m_mutex
);
44
m_current_value
.Clear();
45
m_value_was_set
=
false
;
46
}
47
48
bool
IsAggregateValue
()
const override
{
return
true
; }
49
50
// Subclass specific functions
51
52
FileSpecList
GetCurrentValue
()
const
{
53
std::lock_guard<std::recursive_mutex> lock(
m_mutex
);
54
return
m_current_value
;
55
}
56
57
void
SetCurrentValue
(
const
FileSpecList
&value) {
58
std::lock_guard<std::recursive_mutex> lock(
m_mutex
);
59
m_current_value
= value;
60
}
61
62
void
AppendCurrentValue
(
const
FileSpec
&value) {
63
std::lock_guard<std::recursive_mutex> lock(
m_mutex
);
64
m_current_value
.Append(value);
65
}
66
67
protected
:
68
lldb::OptionValueSP
Clone
()
const override
;
69
70
mutable
std::recursive_mutex
m_mutex
;
71
FileSpecList
m_current_value
;
72
};
73
74
}
// namespace lldb_private
75
76
#endif
// LLDB_INTERPRETER_OPTIONVALUEFILESPECLIST_H
FileSpecList.h
OptionValue.h
lldb_private::Cloneable
A class that implements CRTP-based "virtual constructor" idiom.
Definition
Cloneable.h:40
lldb_private::ExecutionContext
"lldb/Target/ExecutionContext.h" A class that contains an execution context.
Definition
ExecutionContext.h:293
lldb_private::FileSpecList
A file collection class.
Definition
FileSpecList.h:91
lldb_private::FileSpec
A file utility class.
Definition
FileSpec.h:57
lldb_private::OptionValueFileSpecList::SetValueFromString
Status SetValueFromString(llvm::StringRef value, VarSetOperationType op=eVarSetOperationAssign) override
Definition
OptionValueFileSpecList.cpp:60
lldb_private::OptionValueFileSpecList::AppendCurrentValue
void AppendCurrentValue(const FileSpec &value)
Definition
OptionValueFileSpecList.h:62
lldb_private::OptionValueFileSpecList::IsAggregateValue
bool IsAggregateValue() const override
Definition
OptionValueFileSpecList.h:48
lldb_private::OptionValueFileSpecList::SetCurrentValue
void SetCurrentValue(const FileSpecList &value)
Definition
OptionValueFileSpecList.h:57
lldb_private::OptionValueFileSpecList::m_current_value
FileSpecList m_current_value
Definition
OptionValueFileSpecList.h:71
lldb_private::OptionValueFileSpecList::DumpValue
void DumpValue(const ExecutionContext *exe_ctx, Stream &strm, uint32_t dump_mask) override
Definition
OptionValueFileSpecList.cpp:18
lldb_private::OptionValueFileSpecList::ToJSON
llvm::json::Value ToJSON(const ExecutionContext *exe_ctx) const override
Definition
OptionValueFileSpecList.cpp:52
lldb_private::OptionValueFileSpecList::~OptionValueFileSpecList
~OptionValueFileSpecList() override=default
lldb_private::OptionValueFileSpecList::OptionValueFileSpecList
OptionValueFileSpecList(const OptionValueFileSpecList &other)
Definition
OptionValueFileSpecList.h:24
lldb_private::OptionValueFileSpecList::Clone
lldb::OptionValueSP Clone() const override
Definition
OptionValueFileSpecList.cpp:182
lldb_private::OptionValueFileSpecList::Clear
void Clear() override
Definition
OptionValueFileSpecList.h:42
lldb_private::OptionValueFileSpecList::GetType
OptionValue::Type GetType() const override
Definition
OptionValueFileSpecList.h:31
lldb_private::OptionValueFileSpecList::m_mutex
std::recursive_mutex m_mutex
Definition
OptionValueFileSpecList.h:70
lldb_private::OptionValueFileSpecList::OptionValueFileSpecList
OptionValueFileSpecList()=default
lldb_private::OptionValueFileSpecList::GetCurrentValue
FileSpecList GetCurrentValue() const
Definition
OptionValueFileSpecList.h:52
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::eTypeFileSpecList
@ eTypeFileSpecList
Definition
OptionValue.h:45
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
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::OptionValueSP
std::shared_ptr< lldb_private::OptionValue > OptionValueSP
Definition
lldb-forward.h:388
Generated on
for LLDB by
1.14.0