LLDB
mainline
llvm-project
lldb
include
lldb
Interpreter
OptionValueFileSpec.h
Go to the documentation of this file.
1
//===-- OptionValueFileSpec.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_OPTIONVALUEFILESPEC_H
10
#define LLDB_INTERPRETER_OPTIONVALUEFILESPEC_H
11
12
#include "
lldb/Interpreter/CommandCompletions.h
"
13
#include "
lldb/Interpreter/OptionValue.h
"
14
15
#include "
lldb/Utility/FileSpec.h
"
16
#include "llvm/Support/Chrono.h"
17
18
namespace
lldb_private
{
19
20
class
OptionValueFileSpec
:
public
Cloneable
<OptionValueFileSpec, OptionValue> {
21
public
:
22
OptionValueFileSpec
(
bool
resolve =
true
);
23
24
OptionValueFileSpec
(
const
FileSpec
&value,
bool
resolve =
true
);
25
26
OptionValueFileSpec
(
const
FileSpec
¤t_value,
27
const
FileSpec
&default_value,
bool
resolve =
true
);
28
29
~OptionValueFileSpec
()
override
=
default
;
30
31
// Virtual subclass pure virtual overrides
32
33
OptionValue::Type
GetType
()
const override
{
return
eTypeFileSpec
; }
34
35
void
DumpValue
(
const
ExecutionContext
*exe_ctx,
Stream
&strm,
36
uint32_t dump_mask)
override
;
37
38
llvm::json::Value
ToJSON
(
const
ExecutionContext
*exe_ctx)
const override
{
39
return
m_current_value
.GetPath();
40
}
41
42
Status
43
SetValueFromString
(llvm::StringRef value,
44
VarSetOperationType
op =
eVarSetOperationAssign
)
override
;
45
46
void
Clear
()
override
{
47
m_current_value
=
m_default_value
;
48
m_value_was_set
=
false
;
49
m_data_sp
.reset();
50
m_data_mod_time
= llvm::sys::TimePoint<>();
51
}
52
53
void
AutoComplete
(
CommandInterpreter
&interpreter,
54
CompletionRequest
&request)
override
;
55
56
// Subclass specific functions
57
58
FileSpec
&
GetCurrentValue
() {
return
m_current_value
; }
59
60
const
FileSpec
&
GetCurrentValue
()
const
{
return
m_current_value
; }
61
62
const
FileSpec
&
GetDefaultValue
()
const
{
return
m_default_value
; }
63
64
void
SetCurrentValue
(
const
FileSpec
&value,
bool
set_value_was_set) {
65
m_current_value
= value;
66
if
(set_value_was_set)
67
m_value_was_set
=
true
;
68
m_data_sp
.reset();
69
}
70
71
void
SetDefaultValue
(
const
FileSpec
&value) {
m_default_value
= value; }
72
73
const
lldb::DataBufferSP
&
GetFileContents
();
74
75
void
SetCompletionMask
(uint32_t mask) {
m_completion_mask
= mask; }
76
77
protected
:
78
FileSpec
m_current_value
;
79
FileSpec
m_default_value
;
80
lldb::DataBufferSP
m_data_sp
;
81
llvm::sys::TimePoint<>
m_data_mod_time
;
82
uint32_t
m_completion_mask
=
lldb::eDiskFileCompletion
;
83
bool
m_resolve
;
84
};
85
86
}
// namespace lldb_private
87
88
#endif
// LLDB_INTERPRETER_OPTIONVALUEFILESPEC_H
CommandCompletions.h
FileSpec.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:304
lldb_private::FileSpec
A file utility class.
Definition
FileSpec.h:57
lldb_private::OptionValueFileSpec::GetCurrentValue
const FileSpec & GetCurrentValue() const
Definition
OptionValueFileSpec.h:60
lldb_private::OptionValueFileSpec::m_current_value
FileSpec m_current_value
Definition
OptionValueFileSpec.h:78
lldb_private::OptionValueFileSpec::OptionValueFileSpec
OptionValueFileSpec(bool resolve=true)
Definition
OptionValueFileSpec.cpp:22
lldb_private::OptionValueFileSpec::SetCompletionMask
void SetCompletionMask(uint32_t mask)
Definition
OptionValueFileSpec.h:75
lldb_private::OptionValueFileSpec::GetCurrentValue
FileSpec & GetCurrentValue()
Definition
OptionValueFileSpec.h:58
lldb_private::OptionValueFileSpec::ToJSON
llvm::json::Value ToJSON(const ExecutionContext *exe_ctx) const override
Definition
OptionValueFileSpec.h:38
lldb_private::OptionValueFileSpec::GetType
OptionValue::Type GetType() const override
Definition
OptionValueFileSpec.h:33
lldb_private::OptionValueFileSpec::~OptionValueFileSpec
~OptionValueFileSpec() override=default
lldb_private::OptionValueFileSpec::m_data_mod_time
llvm::sys::TimePoint m_data_mod_time
Definition
OptionValueFileSpec.h:81
lldb_private::OptionValueFileSpec::AutoComplete
void AutoComplete(CommandInterpreter &interpreter, CompletionRequest &request) override
Definition
OptionValueFileSpec.cpp:91
lldb_private::OptionValueFileSpec::SetValueFromString
Status SetValueFromString(llvm::StringRef value, VarSetOperationType op=eVarSetOperationAssign) override
Definition
OptionValueFileSpec.cpp:55
lldb_private::OptionValueFileSpec::Clear
void Clear() override
Definition
OptionValueFileSpec.h:46
lldb_private::OptionValueFileSpec::m_completion_mask
uint32_t m_completion_mask
Definition
OptionValueFileSpec.h:82
lldb_private::OptionValueFileSpec::DumpValue
void DumpValue(const ExecutionContext *exe_ctx, Stream &strm, uint32_t dump_mask) override
Definition
OptionValueFileSpec.cpp:36
lldb_private::OptionValueFileSpec::m_default_value
FileSpec m_default_value
Definition
OptionValueFileSpec.h:79
lldb_private::OptionValueFileSpec::GetDefaultValue
const FileSpec & GetDefaultValue() const
Definition
OptionValueFileSpec.h:62
lldb_private::OptionValueFileSpec::SetDefaultValue
void SetDefaultValue(const FileSpec &value)
Definition
OptionValueFileSpec.h:71
lldb_private::OptionValueFileSpec::m_data_sp
lldb::DataBufferSP m_data_sp
Definition
OptionValueFileSpec.h:80
lldb_private::OptionValueFileSpec::m_resolve
bool m_resolve
Definition
OptionValueFileSpec.h:83
lldb_private::OptionValueFileSpec::GetFileContents
const lldb::DataBufferSP & GetFileContents()
Definition
OptionValueFileSpec.cpp:97
lldb_private::OptionValueFileSpec::SetCurrentValue
void SetCurrentValue(const FileSpec &value, bool set_value_was_set)
Definition
OptionValueFileSpec.h:64
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::eTypeFileSpec
@ eTypeFileSpec
Definition
OptionValue.h:44
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::eDiskFileCompletion
@ eDiskFileCompletion
Definition
lldb-enumerations.h:1303
lldb::DataBufferSP
std::shared_ptr< lldb_private::DataBuffer > DataBufferSP
Definition
lldb-forward.h:340
Generated on
for LLDB by
1.14.0