LLDB mainline
|
#include <OptionValueProperties.h>
Public Member Functions | |
OptionValueProperties ()=default | |
OptionValueProperties (llvm::StringRef name) | |
~OptionValueProperties () override=default | |
Type | GetType () const override |
void | Clear () override |
lldb::OptionValueSP | DeepCopy (const lldb::OptionValueSP &new_parent) const override |
Status | SetValueFromString (llvm::StringRef value, VarSetOperationType op=eVarSetOperationAssign) override |
void | DumpValue (const ExecutionContext *exe_ctx, Stream &strm, uint32_t dump_mask) override |
llvm::json::Value | ToJSON (const ExecutionContext *exe_ctx) override |
llvm::StringRef | GetName () const override |
virtual Status | DumpPropertyValue (const ExecutionContext *exe_ctx, Stream &strm, llvm::StringRef property_path, uint32_t dump_mask, bool is_json=false) |
virtual void | DumpAllDescriptions (CommandInterpreter &interpreter, Stream &strm) const |
void | Apropos (llvm::StringRef keyword, std::vector< const Property * > &matching_properties) const |
void | Initialize (const PropertyDefinitions &setting_definitions) |
virtual size_t | GetPropertyIndex (llvm::StringRef name) const |
virtual const Property * | GetProperty (llvm::StringRef name, const ExecutionContext *exe_ctx=nullptr) const |
virtual const Property * | GetPropertyAtIndex (size_t idx, const ExecutionContext *exe_ctx=nullptr) const |
virtual const Property * | GetPropertyAtPath (const ExecutionContext *exe_ctx, llvm::StringRef property_path) const |
virtual lldb::OptionValueSP | GetPropertyValueAtIndex (size_t idx, const ExecutionContext *exe_ctx) const |
virtual lldb::OptionValueSP | GetValueForKey (const ExecutionContext *exe_ctx, llvm::StringRef key) const |
lldb::OptionValueSP | GetSubValue (const ExecutionContext *exe_ctx, llvm::StringRef name, Status &error) const override |
Status | SetSubValue (const ExecutionContext *exe_ctx, VarSetOperationType op, llvm::StringRef path, llvm::StringRef value) override |
bool | GetPropertyAtIndexAsArgs (size_t idx, Args &args, const ExecutionContext *exe_ctx=nullptr) const |
bool | SetPropertyAtIndexFromArgs (size_t idx, const Args &args, const ExecutionContext *exe_ctx=nullptr) |
OptionValueDictionary * | GetPropertyAtIndexAsOptionValueDictionary (size_t idx, const ExecutionContext *exe_ctx=nullptr) const |
OptionValueSInt64 * | GetPropertyAtIndexAsOptionValueSInt64 (size_t idx, const ExecutionContext *exe_ctx=nullptr) const |
OptionValueUInt64 * | GetPropertyAtIndexAsOptionValueUInt64 (size_t idx, const ExecutionContext *exe_ctx=nullptr) const |
OptionValueString * | GetPropertyAtIndexAsOptionValueString (size_t idx, const ExecutionContext *exe_ctx=nullptr) const |
OptionValueFileSpec * | GetPropertyAtIndexAsOptionValueFileSpec (size_t idx, const ExecutionContext *exe_ctx=nullptr) const |
OptionValuePathMappings * | GetPropertyAtIndexAsOptionValuePathMappings (size_t idx, const ExecutionContext *exe_ctx=nullptr) const |
OptionValueFileSpecList * | GetPropertyAtIndexAsOptionValueFileSpecList (size_t idx, const ExecutionContext *exe_ctx=nullptr) const |
void | AppendProperty (llvm::StringRef name, llvm::StringRef desc, bool is_global, const lldb::OptionValueSP &value_sp) |
lldb::OptionValuePropertiesSP | GetSubProperty (const ExecutionContext *exe_ctx, llvm::StringRef name) |
void | SetValueChangedCallback (size_t property_idx, std::function< void()> callback) |
template<typename T > | |
auto | GetPropertyAtIndexAs (size_t idx, const ExecutionContext *exe_ctx=nullptr) const |
template<typename T > | |
bool | SetPropertyAtIndex (size_t idx, T t, const ExecutionContext *exe_ctx=nullptr) const |
Public Member Functions inherited from lldb_private::Cloneable< OptionValueProperties, OptionValue > | |
std::shared_ptr< typename Base::TopmostBase > | Clone () const override |
Public Member Functions inherited from lldb_private::OptionValue | |
OptionValue ()=default | |
virtual | ~OptionValue ()=default |
OptionValue (const OptionValue &other) | |
OptionValue & | operator= (const OptionValue &other) |
virtual Type | GetType () const =0 |
virtual bool | ValueIsTransparent () const |
virtual const char * | GetTypeAsCString () const |
virtual void | DumpValue (const ExecutionContext *exe_ctx, Stream &strm, uint32_t dump_mask)=0 |
virtual llvm::json::Value | ToJSON (const ExecutionContext *exe_ctx) |
virtual Status | SetValueFromString (llvm::StringRef value, VarSetOperationType op=eVarSetOperationAssign) |
virtual void | Clear ()=0 |
virtual lldb::OptionValueSP | DeepCopy (const lldb::OptionValueSP &new_parent) const |
virtual void | AutoComplete (CommandInterpreter &interpreter, CompletionRequest &request) |
virtual lldb::OptionValueSP | GetSubValue (const ExecutionContext *exe_ctx, llvm::StringRef name, Status &error) const |
virtual Status | SetSubValue (const ExecutionContext *exe_ctx, VarSetOperationType op, llvm::StringRef name, llvm::StringRef value) |
virtual bool | IsAggregateValue () const |
virtual llvm::StringRef | GetName () const |
virtual bool | DumpQualifiedName (Stream &strm) const |
uint32_t | GetTypeAsMask () |
OptionValueArch * | GetAsArch () |
const OptionValueArch * | GetAsArch () const |
OptionValueArray * | GetAsArray () |
const OptionValueArray * | GetAsArray () const |
OptionValueArgs * | GetAsArgs () |
const OptionValueArgs * | GetAsArgs () const |
OptionValueBoolean * | GetAsBoolean () |
const OptionValueBoolean * | GetAsBoolean () const |
OptionValueChar * | GetAsChar () |
const OptionValueChar * | GetAsChar () const |
OptionValueDictionary * | GetAsDictionary () |
const OptionValueDictionary * | GetAsDictionary () const |
OptionValueEnumeration * | GetAsEnumeration () |
const OptionValueEnumeration * | GetAsEnumeration () const |
OptionValueFileSpec * | GetAsFileSpec () |
const OptionValueFileSpec * | GetAsFileSpec () const |
OptionValueFileSpecList * | GetAsFileSpecList () |
const OptionValueFileSpecList * | GetAsFileSpecList () const |
OptionValueFormat * | GetAsFormat () |
const OptionValueFormat * | GetAsFormat () const |
OptionValueLanguage * | GetAsLanguage () |
const OptionValueLanguage * | GetAsLanguage () const |
OptionValuePathMappings * | GetAsPathMappings () |
const OptionValuePathMappings * | GetAsPathMappings () const |
OptionValueProperties * | GetAsProperties () |
const OptionValueProperties * | GetAsProperties () const |
OptionValueRegex * | GetAsRegex () |
const OptionValueRegex * | GetAsRegex () const |
OptionValueSInt64 * | GetAsSInt64 () |
const OptionValueSInt64 * | GetAsSInt64 () const |
OptionValueString * | GetAsString () |
const OptionValueString * | GetAsString () const |
OptionValueUInt64 * | GetAsUInt64 () |
const OptionValueUInt64 * | GetAsUInt64 () const |
OptionValueUUID * | GetAsUUID () |
const OptionValueUUID * | GetAsUUID () const |
OptionValueFormatEntity * | GetAsFormatEntity () |
const OptionValueFormatEntity * | GetAsFormatEntity () const |
bool | AppendFileSpecValue (FileSpec file_spec) |
bool | OptionWasSet () const |
void | SetOptionWasSet () |
void | SetParent (const lldb::OptionValueSP &parent_sp) |
lldb::OptionValueSP | GetParent () const |
void | SetValueChangedCallback (std::function< void()> callback) |
void | NotifyValueChanged () |
template<typename T , std::enable_if_t<!std::is_pointer_v< T >, bool > = true> | |
std::optional< T > | GetValueAs () const |
template<typename T , typename U = typename std::remove_const< typename std::remove_pointer<T>::type>::type, std::enable_if_t< std::is_pointer_v< T >, bool > = true> | |
T | GetValueAs () const |
bool | SetValueAs (bool v) |
bool | SetValueAs (char v) |
bool | SetValueAs (uint64_t v) |
bool | SetValueAs (int64_t v) |
bool | SetValueAs (UUID v) |
bool | SetValueAs (llvm::StringRef v) |
bool | SetValueAs (lldb::LanguageType v) |
bool | SetValueAs (lldb::Format v) |
bool | SetValueAs (FileSpec v) |
bool | SetValueAs (ArchSpec v) |
template<typename T , std::enable_if_t< std::is_enum_v< T >, bool > = true> | |
bool | SetValueAs (T t) |
Static Public Member Functions | |
static lldb::OptionValuePropertiesSP | CreateLocalCopy (const Properties &global_properties) |
Static Public Member Functions inherited from lldb_private::OptionValue | |
static const char * | GetBuiltinTypeAsCString (Type t) |
static uint32_t | ConvertTypeToMask (OptionValue::Type type) |
static OptionValue::Type | ConvertTypeMaskToType (uint32_t type_mask) |
static lldb::OptionValueSP | CreateValueFromCStringForTypeMask (const char *value_cstr, uint32_t type_mask, Status &error) |
Protected Member Functions | |
Property * | ProtectedGetPropertyAtIndex (size_t idx) |
const Property * | ProtectedGetPropertyAtIndex (size_t idx) const |
virtual lldb::OptionValueSP | Clone () const =0 |
Protected Attributes | |
std::string | m_name |
std::vector< Property > | m_properties |
llvm::StringMap< size_t > | m_name_to_index |
Protected Attributes inherited from lldb_private::OptionValue | |
lldb::OptionValueWP | m_parent_wp |
std::function< void()> | m_callback |
bool | m_value_was_set = false |
Additional Inherited Members | |
Public Types inherited from lldb_private::OptionValue | |
enum | Type { eTypeInvalid = 0 , eTypeArch , eTypeArgs , eTypeArray , eTypeBoolean , eTypeChar , eTypeDictionary , eTypeEnum , eTypeFileLineColumn , eTypeFileSpec , eTypeFileSpecList , eTypeFormat , eTypeLanguage , eTypePathMap , eTypeProperties , eTypeRegex , eTypeSInt64 , eTypeString , eTypeUInt64 , eTypeUUID , eTypeFormatEntity } |
enum | { eDumpOptionName = (1u << 0) , eDumpOptionType = (1u << 1) , eDumpOptionValue = (1u << 2) , eDumpOptionDescription = (1u << 3) , eDumpOptionRaw = (1u << 4) , eDumpOptionCommand = (1u << 5) , eDumpGroupValue = (eDumpOptionName | eDumpOptionType | eDumpOptionValue) , eDumpGroupHelp , eDumpGroupExport = (eDumpOptionCommand | eDumpOptionName | eDumpOptionValue) } |
Protected Types inherited from lldb_private::OptionValue | |
using | TopmostBase = OptionValue |
Definition at line 22 of file OptionValueProperties.h.
|
default |
OptionValueProperties::OptionValueProperties | ( | llvm::StringRef | name | ) |
Definition at line 23 of file OptionValueProperties.cpp.
|
overridedefault |
void OptionValueProperties::AppendProperty | ( | llvm::StringRef | name, |
llvm::StringRef | desc, | ||
bool | is_global, | ||
const lldb::OptionValueSP & | value_sp | ||
) |
Definition at line 43 of file OptionValueProperties.cpp.
References m_name_to_index, and m_properties.
void OptionValueProperties::Apropos | ( | llvm::StringRef | keyword, |
std::vector< const Property * > & | matching_properties | ||
) | const |
Definition at line 451 of file OptionValueProperties.cpp.
References Apropos(), lldb_private::OptionValue::GetAsProperties(), m_properties, and ProtectedGetPropertyAtIndex().
Referenced by Apropos().
|
overridevirtual |
Implements lldb_private::OptionValue.
Definition at line 290 of file OptionValueProperties.cpp.
References m_properties.
Referenced by SetValueFromString().
|
static |
Definition at line 378 of file OptionValueProperties.cpp.
References lldb_private::Properties::GetValueProperties(), and lldbassert.
Referenced by lldb_private::ProcessProperties::ProcessProperties(), lldb_private::TargetProperties::TargetProperties(), and lldb_private::ThreadProperties::ThreadProperties().
|
overridevirtual |
Reimplemented from lldb_private::OptionValue.
Definition at line 387 of file OptionValueProperties.cpp.
References lldb_private::OptionValue::DeepCopy(), and lldbassert.
|
virtual |
Definition at line 435 of file OptionValueProperties.cpp.
References m_properties, and ProtectedGetPropertyAtIndex().
Referenced by lldb_private::Property::DumpDescription().
|
virtual |
Definition at line 353 of file OptionValueProperties.cpp.
References lldb_private::OptionValue::eDumpOptionName, error(), GetSubValue(), lldb_private::Stream::Printf(), lldb_private::Stream::PutChar(), and lldb_private::Stream::PutCString().
|
overridevirtual |
Implements lldb_private::OptionValue.
Definition at line 321 of file OptionValueProperties.cpp.
References lldb_private::Stream::EOL(), GetPropertyAtIndex(), m_properties, and lldb_private::OptionValue::ValueIsTransparent().
|
inlineoverridevirtual |
Reimplemented from lldb_private::OptionValue.
Definition at line 51 of file OptionValueProperties.h.
References m_name.
|
virtual |
Definition at line 149 of file OptionValueProperties.cpp.
References GetPropertyAtIndex(), and m_name_to_index.
Referenced by GetPropertyAtPath().
|
inlinevirtual |
Reimplemented in ProcessOptionValueProperties, ThreadOptionValueProperties, and TargetOptionValueProperties.
Definition at line 80 of file OptionValueProperties.h.
References ProtectedGetPropertyAtIndex().
Referenced by DumpValue(), GetProperty(), GetPropertyAtIndexAs(), GetPropertyAtIndexAsArgs(), GetPropertyAtIndexAsOptionValueDictionary(), GetPropertyAtIndexAsOptionValueFileSpec(), GetPropertyAtIndexAsOptionValueSInt64(), GetPropertyAtIndexAsOptionValueUInt64(), GetPropertyValueAtIndex(), GetValueForKey(), SetPropertyAtIndex(), SetPropertyAtIndexFromArgs(), and ToJSON().
|
inline |
Definition at line 142 of file OptionValueProperties.h.
References GetPropertyAtIndex().
Referenced by lldb_private::TargetProperties::GetExperimentalPropertyValue(), lldb_private::ProcessProperties::GetOSPluginReportsAllThreads(), and lldb_private::TargetProperties::GetUseDIL().
bool OptionValueProperties::GetPropertyAtIndexAsArgs | ( | size_t | idx, |
Args & | args, | ||
const ExecutionContext * | exe_ctx = nullptr |
||
) | const |
Definition at line 183 of file OptionValueProperties.cpp.
References lldb_private::OptionValueArgs::GetArgs(), lldb_private::OptionValueArray::GetArgs(), lldb_private::OptionValueDictionary::GetArgs(), lldb_private::OptionValue::GetAsArgs(), lldb_private::OptionValue::GetAsArray(), lldb_private::OptionValue::GetAsDictionary(), and GetPropertyAtIndex().
OptionValueDictionary * OptionValueProperties::GetPropertyAtIndexAsOptionValueDictionary | ( | size_t | idx, |
const ExecutionContext * | exe_ctx = nullptr |
||
) | const |
Definition at line 240 of file OptionValueProperties.cpp.
References GetPropertyAtIndex().
OptionValueFileSpec * OptionValueProperties::GetPropertyAtIndexAsOptionValueFileSpec | ( | size_t | idx, |
const ExecutionContext * | exe_ctx = nullptr |
||
) | const |
Definition at line 249 of file OptionValueProperties.cpp.
References lldb_private::OptionValue::GetAsFileSpec(), and GetPropertyAtIndex().
OptionValueFileSpecList * OptionValueProperties::GetPropertyAtIndexAsOptionValueFileSpecList | ( | size_t | idx, |
const ExecutionContext * | exe_ctx = nullptr |
||
) | const |
Definition at line 175 of file OptionValueProperties.cpp.
References GetPropertyValueAtIndex().
OptionValuePathMappings * OptionValueProperties::GetPropertyAtIndexAsOptionValuePathMappings | ( | size_t | idx, |
const ExecutionContext * | exe_ctx = nullptr |
||
) | const |
Definition at line 166 of file OptionValueProperties.cpp.
References GetPropertyValueAtIndex().
OptionValueSInt64 * OptionValueProperties::GetPropertyAtIndexAsOptionValueSInt64 | ( | size_t | idx, |
const ExecutionContext * | exe_ctx = nullptr |
||
) | const |
Definition at line 260 of file OptionValueProperties.cpp.
References lldb_private::OptionValue::GetAsSInt64(), and GetPropertyAtIndex().
OptionValueString * OptionValueProperties::GetPropertyAtIndexAsOptionValueString | ( | size_t | idx, |
const ExecutionContext * | exe_ctx = nullptr |
||
) | const |
Definition at line 282 of file OptionValueProperties.cpp.
References GetPropertyValueAtIndex().
OptionValueUInt64 * OptionValueProperties::GetPropertyAtIndexAsOptionValueUInt64 | ( | size_t | idx, |
const ExecutionContext * | exe_ctx = nullptr |
||
) | const |
Definition at line 271 of file OptionValueProperties.cpp.
References lldb_private::OptionValue::GetAsUInt64(), and GetPropertyAtIndex().
|
virtual |
Definition at line 406 of file OptionValueProperties.cpp.
References lldb_private::OptionValue::GetAsProperties(), GetProperty(), and GetPropertyAtPath().
Referenced by GetPropertyAtPath().
|
virtual |
Definition at line 141 of file OptionValueProperties.cpp.
References m_name_to_index.
|
virtual |
Definition at line 157 of file OptionValueProperties.cpp.
References GetPropertyAtIndex(), and lldb_private::Property::GetValue().
Referenced by GetPropertyAtIndexAsOptionValueFileSpecList(), GetPropertyAtIndexAsOptionValuePathMappings(), and GetPropertyAtIndexAsOptionValueString().
lldb::OptionValuePropertiesSP OptionValueProperties::GetSubProperty | ( | const ExecutionContext * | exe_ctx, |
llvm::StringRef | name | ||
) |
Definition at line 482 of file OptionValueProperties.cpp.
References lldb_private::OptionValue::GetAsProperties(), and GetValueForKey().
|
overridevirtual |
Reimplemented from lldb_private::OptionValue.
Definition at line 65 of file OptionValueProperties.cpp.
References error(), lldb_private::Properties::GetExperimentalSettingsName(), GetValueForKey(), and lldb_private::Properties::IsSettingExperimental().
Referenced by DumpPropertyValue(), and SetSubValue().
|
inlineoverridevirtual |
Implements lldb_private::OptionValue.
Definition at line 32 of file OptionValueProperties.h.
References lldb_private::OptionValue::eTypeProperties.
|
virtual |
Definition at line 53 of file OptionValueProperties.cpp.
References GetPropertyAtIndex(), lldb_private::Property::GetValue(), m_name_to_index, and m_properties.
Referenced by GetSubProperty(), and GetSubValue().
void OptionValueProperties::Initialize | ( | const PropertyDefinitions & | setting_definitions | ) |
Definition at line 26 of file OptionValueProperties.cpp.
References lldb_private::Property::IsValid(), m_name_to_index, and m_properties.
|
inlineprotected |
Definition at line 167 of file OptionValueProperties.h.
References m_properties.
Referenced by Apropos(), DumpAllDescriptions(), ProcessOptionValueProperties::GetPropertyAtIndex(), ThreadOptionValueProperties::GetPropertyAtIndex(), GetPropertyAtIndex(), TargetOptionValueProperties::GetPropertyAtIndex(), and SetValueChangedCallback().
|
inlineprotected |
Definition at line 172 of file OptionValueProperties.h.
References m_properties.
|
inline |
Definition at line 155 of file OptionValueProperties.h.
References GetPropertyAtIndex().
Referenced by lldb_private::ProcessProperties::SetOSPluginReportsAllThreads(), and lldb_private::TargetProperties::SetUseDIL().
bool OptionValueProperties::SetPropertyAtIndexFromArgs | ( | size_t | idx, |
const Args & | args, | ||
const ExecutionContext * | exe_ctx = nullptr |
||
) |
Definition at line 214 of file OptionValueProperties.cpp.
References lldb_private::eVarSetOperationAssign, lldb_private::OptionValue::GetAsArgs(), lldb_private::OptionValue::GetAsArray(), lldb_private::OptionValue::GetAsDictionary(), GetPropertyAtIndex(), lldb_private::OptionValueArray::SetArgs(), lldb_private::OptionValueDictionary::SetArgs(), and lldb_private::Status::Success().
|
overridevirtual |
Reimplemented from lldb_private::OptionValue.
Definition at line 115 of file OptionValueProperties.cpp.
References error(), lldb_private::Status::FromErrorStringWithFormat(), GetSubValue(), and lldb_private::Properties::IsSettingExperimental().
void OptionValueProperties::SetValueChangedCallback | ( | size_t | property_idx, |
std::function< void()> | callback | ||
) |
Definition at line 36 of file OptionValueProperties.cpp.
References ProtectedGetPropertyAtIndex().
|
overridevirtual |
Reimplemented from lldb_private::OptionValue.
Definition at line 296 of file OptionValueProperties.cpp.
References Clear(), error(), lldb_private::eVarSetOperationAppend, lldb_private::eVarSetOperationAssign, lldb_private::eVarSetOperationClear, lldb_private::eVarSetOperationInsertAfter, lldb_private::eVarSetOperationInsertBefore, lldb_private::eVarSetOperationInvalid, lldb_private::eVarSetOperationRemove, lldb_private::eVarSetOperationReplace, and lldb_private::OptionValue::SetValueFromString().
|
overridevirtual |
Reimplemented from lldb_private::OptionValue.
Definition at line 338 of file OptionValueProperties.cpp.
References GetPropertyAtIndex(), m_properties, and lldb_private::OptionValue::ToJSON().
|
protected |
Definition at line 177 of file OptionValueProperties.h.
Referenced by GetName().
|
protected |
Definition at line 179 of file OptionValueProperties.h.
Referenced by AppendProperty(), GetProperty(), GetPropertyIndex(), GetValueForKey(), and Initialize().
|
protected |
Definition at line 178 of file OptionValueProperties.h.
Referenced by AppendProperty(), Apropos(), Clear(), DumpAllDescriptions(), DumpValue(), GetValueForKey(), Initialize(), ProtectedGetPropertyAtIndex(), and ToJSON().