9#ifndef LLDB_INTERPRETER_OPTIONVALUEPROPERTIES_H
10#define LLDB_INTERPRETER_OPTIONVALUEPROPERTIES_H
24 :
public Cloneable<OptionValueProperties, OptionValue>,
25 public std::enable_shared_from_this<OptionValueProperties> {
35 void Clear()
override;
37 static lldb::OptionValuePropertiesSP
41 DeepCopy(
const lldb::OptionValueSP &new_parent)
const override;
55 Stream &strm, llvm::StringRef property_path,
56 uint32_t dump_mask,
bool is_json =
false);
61 void Apropos(llvm::StringRef keyword,
62 std::vector<const Property *> &matching_properties)
const;
93 llvm::StringRef property_path)
const;
95 virtual lldb::OptionValueSP
101 bool value_will_be_modified)
const;
104 llvm::StringRef name,
105 bool value_will_be_modified,
109 llvm::StringRef path, llvm::StringRef value)
override;
129 uint32_t idx,
bool fail_value)
const;
140 int64_t fail_value)
const;
162 uint32_t idx, int64_t fail_value)
const;
168 uint32_t idx, uint64_t fail_value)
const;
175 llvm::StringRef fail_value)
const;
178 llvm::StringRef new_value);
182 bool will_modify,
uint32_t idx)
const;
186 bool will_modify,
uint32_t idx)
const;
201 bool is_global,
const lldb::OptionValueSP &value_sp);
207 std::function<
void()> callback);
static llvm::raw_ostream & error(Stream &strm)
A command line argument class.
A class that implements CRTP-based "virtual constructor" idiom.
A uniqued constant string class.
"lldb/Target/ExecutionContext.h" A class that contains an execution context.
lldb::OptionValuePropertiesSP GetSubProperty(const ExecutionContext *exe_ctx, ConstString name)
virtual lldb::OptionValueSP GetPropertyValueAtIndex(const ExecutionContext *exe_ctx, bool will_modify, uint32_t idx) const
Status SetSubValue(const ExecutionContext *exe_ctx, VarSetOperationType op, llvm::StringRef path, llvm::StringRef value) override
bool SetPropertyAtIndexAsString(const ExecutionContext *exe_ctx, uint32_t idx, llvm::StringRef new_value)
bool SetPropertyAtIndexAsEnumeration(const ExecutionContext *exe_ctx, uint32_t idx, int64_t new_value)
void Initialize(const PropertyDefinitions &setting_definitions)
OptionValueFileSpecList * GetPropertyAtIndexAsOptionValueFileSpecList(const ExecutionContext *exe_ctx, bool will_modify, uint32_t idx) const
uint64_t GetPropertyAtIndexAsUInt64(const ExecutionContext *exe_ctx, uint32_t idx, uint64_t fail_value) const
bool SetPropertyAtIndexAsFileSpec(const ExecutionContext *exe_ctx, uint32_t idx, const FileSpec &file_spec)
OptionValueString * GetPropertyAtIndexAsOptionValueString(const ExecutionContext *exe_ctx, bool will_modify, uint32_t idx) const
void Apropos(llvm::StringRef keyword, std::vector< const Property * > &matching_properties) const
NameToIndex m_name_to_index
virtual uint32_t GetPropertyIndex(ConstString name) const
OptionValueDictionary * GetPropertyAtIndexAsOptionValueDictionary(const ExecutionContext *exe_ctx, uint32_t idx) const
FileSpec GetPropertyAtIndexAsFileSpec(const ExecutionContext *exe_ctx, uint32_t idx) const
lldb::OptionValueSP GetSubValue(const ExecutionContext *exe_ctx, llvm::StringRef name, bool value_will_be_modified, Status &error) const override
OptionValueSInt64 * GetPropertyAtIndexAsOptionValueSInt64(const ExecutionContext *exe_ctx, uint32_t idx) const
bool SetPropertyAtIndexAsSInt64(const ExecutionContext *exe_ctx, uint32_t idx, int64_t new_value)
lldb::OptionValueSP DeepCopy(const lldb::OptionValueSP &new_parent) const override
void DumpValue(const ExecutionContext *exe_ctx, Stream &strm, uint32_t dump_mask) override
OptionValuePathMappings * GetPropertyAtIndexAsOptionValuePathMappings(const ExecutionContext *exe_ctx, bool will_modify, uint32_t idx) const
int64_t GetPropertyAtIndexAsSInt64(const ExecutionContext *exe_ctx, uint32_t idx, int64_t fail_value) const
virtual const Property * GetPropertyAtIndex(const ExecutionContext *exe_ctx, bool will_modify, uint32_t idx) const
virtual void DumpAllDescriptions(CommandInterpreter &interpreter, Stream &strm) const
UniqueCStringMap< size_t > NameToIndex
ConstString GetName() const override
void AppendProperty(ConstString name, ConstString desc, bool is_global, const lldb::OptionValueSP &value_sp)
virtual lldb::OptionValueSP GetValueForKey(const ExecutionContext *exe_ctx, ConstString key, bool value_will_be_modified) const
virtual Status DumpPropertyValue(const ExecutionContext *exe_ctx, Stream &strm, llvm::StringRef property_path, uint32_t dump_mask, bool is_json=false)
llvm::json::Value ToJSON(const ExecutionContext *exe_ctx) override
bool SetPropertyAtIndexAsBoolean(const ExecutionContext *exe_ctx, uint32_t idx, bool new_value)
virtual const Property * GetProperty(const ExecutionContext *exe_ctx, bool will_modify, ConstString name) const
OptionValueLanguage * GetPropertyAtIndexAsOptionValueLanguage(const ExecutionContext *exe_ctx, uint32_t idx) const
static lldb::OptionValuePropertiesSP CreateLocalCopy(const Properties &global_properties)
OptionValueFileSpec * GetPropertyAtIndexAsOptionValueFileSpec(const ExecutionContext *exe_ctx, bool will_modify, uint32_t idx) const
bool SetPropertyAtIndexAsUInt64(const ExecutionContext *exe_ctx, uint32_t idx, uint64_t new_value)
virtual size_t GetNumProperties() const
virtual const Property * GetPropertyAtPath(const ExecutionContext *exe_ctx, bool will_modify, llvm::StringRef property_path) const
void SetValueChangedCallback(uint32_t property_idx, std::function< void()> callback)
bool GetPropertyAtIndexAsArgs(const ExecutionContext *exe_ctx, uint32_t idx, Args &args) const
OptionValueUInt64 * GetPropertyAtIndexAsOptionValueUInt64(const ExecutionContext *exe_ctx, uint32_t idx) const
llvm::StringRef GetPropertyAtIndexAsString(const ExecutionContext *exe_ctx, uint32_t idx, llvm::StringRef fail_value) const
bool SetPropertyAtIndexFromArgs(const ExecutionContext *exe_ctx, uint32_t idx, const Args &args)
const FormatEntity::Entry * GetPropertyAtIndexAsFormatEntity(const ExecutionContext *exe_ctx, uint32_t idx)
std::vector< Property > m_properties
const Property * ProtectedGetPropertyAtIndex(uint32_t idx) const
Property * ProtectedGetPropertyAtIndex(uint32_t idx)
bool SetPropertyAtIndexAsLanguage(const ExecutionContext *exe_ctx, uint32_t idx, lldb::LanguageType lang)
OptionValueArch * GetPropertyAtIndexAsOptionValueArch(const ExecutionContext *exe_ctx, uint32_t idx) const
Status SetValueFromString(llvm::StringRef value, VarSetOperationType op=eVarSetOperationAssign) override
const RegularExpression * GetPropertyAtIndexAsOptionValueRegex(const ExecutionContext *exe_ctx, uint32_t idx) const
Type GetType() const override
~OptionValueProperties() override=default
int64_t GetPropertyAtIndexAsEnumeration(const ExecutionContext *exe_ctx, uint32_t idx, int64_t fail_value) const
OptionValueProperties()=default
bool GetPropertyAtIndexAsBoolean(const ExecutionContext *exe_ctx, uint32_t idx, bool fail_value) const
A stream class that can stream formatted output to a file.
A class that represents a running process on the host machine.
llvm::ArrayRef< PropertyDefinition > PropertyDefinitions
VarSetOperationType
Settable state variable types.
LanguageType
Programming language type.