LLDB mainline
lldb_private::OptionValueProperties Class Reference

#include <OptionValueProperties.h>

Inheritance diagram for lldb_private::OptionValueProperties:
[legend]

Public Member Functions

 OptionValueProperties ()=default
 OptionValueProperties (llvm::StringRef name)
 ~OptionValueProperties () override=default
Type GetType () const 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
bool IsDefault () const override
 Return true if the current value equals the default value.
llvm::json::Value ToJSON (const ExecutionContext *exe_ctx) const 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, std::vector< const Property * > &matching_property_paths) const
void Initialize (const PropertyCollectionDefinition &setting_definitions)
void SetExpectedPath (std::string path)
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 OptionValue::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 bool ValueIsTransparent () const
virtual const char * GetTypeAsCString () const
void Clear ()
virtual void AutoComplete (CommandInterpreter &interpreter, CompletionRequest &request)
virtual bool IsAggregateValue () const
virtual bool DumpQualifiedName (Stream &strm, std::optional< Stream::HighlightSettings > highlight=std::nullopt) 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)
bool SetValueAs (const FormatEntity::Entry &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
bool VerifyPath ()
void ClearImpl () override

Protected Attributes

std::string m_name
std::vector< Property > m_properties
llvm::StringMap< size_t > m_name_to_index
std::string m_expected_path
Protected Attributes inherited from lldb_private::OptionValue
lldb::OptionValueWP m_parent_wp
std::function< void()> m_callback
bool m_value_was_set = false
std::mutex m_mutex

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) , eDumpOptionDefaultValue = (1u << 6) , eDumpOptionOnlyChanged = (1u << 7) ,
  eDumpGroupValue = (eDumpOptionName | eDumpOptionType | eDumpOptionValue) , eDumpGroupHelp , eDumpGroupExport = (eDumpOptionCommand | eDumpOptionName | eDumpOptionValue)
}
Protected Types inherited from lldb_private::OptionValue
using TopmostBase = OptionValue

Detailed Description

Definition at line 22 of file OptionValueProperties.h.

Constructor & Destructor Documentation

◆ OptionValueProperties() [1/2]

lldb_private::OptionValueProperties::OptionValueProperties ( )
default

◆ OptionValueProperties() [2/2]

OptionValueProperties::OptionValueProperties ( llvm::StringRef name)

Definition at line 23 of file OptionValueProperties.cpp.

References m_name.

◆ ~OptionValueProperties()

lldb_private::OptionValueProperties::~OptionValueProperties ( )
overridedefault

Member Function Documentation

◆ AppendProperty()

void OptionValueProperties::AppendProperty ( llvm::StringRef name,
llvm::StringRef desc,
bool is_global,
const lldb::OptionValueSP & value_sp )

◆ Apropos()

void OptionValueProperties::Apropos ( llvm::StringRef keyword,
std::vector< const Property * > & matching_properties,
std::vector< const Property * > & matching_property_paths ) const

◆ ClearImpl()

void OptionValueProperties::ClearImpl ( )
overrideprotectedvirtual

Implements lldb_private::OptionValue.

Definition at line 306 of file OptionValueProperties.cpp.

References m_properties.

◆ CreateLocalCopy()

◆ DeepCopy()

OptionValueSP OptionValueProperties::DeepCopy ( const lldb::OptionValueSP & new_parent) const
overridevirtual

◆ DumpAllDescriptions()

void OptionValueProperties::DumpAllDescriptions ( CommandInterpreter & interpreter,
Stream & strm ) const
virtual

◆ DumpPropertyValue()

Status OptionValueProperties::DumpPropertyValue ( const ExecutionContext * exe_ctx,
Stream & strm,
llvm::StringRef property_path,
uint32_t dump_mask,
bool is_json = false )
virtual

◆ DumpValue()

◆ GetName()

llvm::StringRef lldb_private::OptionValueProperties::GetName ( ) const
inlineoverridevirtual

Reimplemented from lldb_private::OptionValue.

Definition at line 51 of file OptionValueProperties.h.

References m_name.

Referenced by VerifyPath().

◆ GetProperty()

const Property * OptionValueProperties::GetProperty ( llvm::StringRef name,
const ExecutionContext * exe_ctx = nullptr ) const
virtual

Definition at line 165 of file OptionValueProperties.cpp.

References GetPropertyAtIndex(), and m_name_to_index.

Referenced by GetPropertyAtPath().

◆ GetPropertyAtIndex()

◆ GetPropertyAtIndexAs()

template<typename T>
auto lldb_private::OptionValueProperties::GetPropertyAtIndexAs ( size_t idx,
const ExecutionContext * exe_ctx = nullptr ) const
inline

◆ GetPropertyAtIndexAsArgs()

◆ GetPropertyAtIndexAsOptionValueDictionary()

OptionValueDictionary * OptionValueProperties::GetPropertyAtIndexAsOptionValueDictionary ( size_t idx,
const ExecutionContext * exe_ctx = nullptr ) const

Definition at line 256 of file OptionValueProperties.cpp.

References GetPropertyAtIndex().

◆ GetPropertyAtIndexAsOptionValueFileSpec()

OptionValueFileSpec * OptionValueProperties::GetPropertyAtIndexAsOptionValueFileSpec ( size_t idx,
const ExecutionContext * exe_ctx = nullptr ) const

◆ GetPropertyAtIndexAsOptionValueFileSpecList()

OptionValueFileSpecList * OptionValueProperties::GetPropertyAtIndexAsOptionValueFileSpecList ( size_t idx,
const ExecutionContext * exe_ctx = nullptr ) const

Definition at line 191 of file OptionValueProperties.cpp.

References GetPropertyValueAtIndex().

◆ GetPropertyAtIndexAsOptionValuePathMappings()

OptionValuePathMappings * OptionValueProperties::GetPropertyAtIndexAsOptionValuePathMappings ( size_t idx,
const ExecutionContext * exe_ctx = nullptr ) const

Definition at line 182 of file OptionValueProperties.cpp.

References GetPropertyValueAtIndex().

◆ GetPropertyAtIndexAsOptionValueSInt64()

OptionValueSInt64 * OptionValueProperties::GetPropertyAtIndexAsOptionValueSInt64 ( size_t idx,
const ExecutionContext * exe_ctx = nullptr ) const

◆ GetPropertyAtIndexAsOptionValueString()

OptionValueString * OptionValueProperties::GetPropertyAtIndexAsOptionValueString ( size_t idx,
const ExecutionContext * exe_ctx = nullptr ) const

Definition at line 298 of file OptionValueProperties.cpp.

References GetPropertyValueAtIndex().

◆ GetPropertyAtIndexAsOptionValueUInt64()

OptionValueUInt64 * OptionValueProperties::GetPropertyAtIndexAsOptionValueUInt64 ( size_t idx,
const ExecutionContext * exe_ctx = nullptr ) const

◆ GetPropertyAtPath()

const Property * OptionValueProperties::GetPropertyAtPath ( const ExecutionContext * exe_ctx,
llvm::StringRef property_path ) const
virtual

Definition at line 431 of file OptionValueProperties.cpp.

References GetProperty(), GetPropertyAtPath(), and OptionValueProperties().

Referenced by GetPropertyAtPath().

◆ GetPropertyIndex()

size_t OptionValueProperties::GetPropertyIndex ( llvm::StringRef name) const
virtual

Definition at line 157 of file OptionValueProperties.cpp.

References m_name_to_index.

◆ GetPropertyValueAtIndex()

lldb::OptionValueSP OptionValueProperties::GetPropertyValueAtIndex ( size_t idx,
const ExecutionContext * exe_ctx ) const
virtual

◆ GetSubProperty()

lldb::OptionValuePropertiesSP OptionValueProperties::GetSubProperty ( const ExecutionContext * exe_ctx,
llvm::StringRef name )

Definition at line 513 of file OptionValueProperties.cpp.

References GetValueForKey(), and OptionValueProperties().

◆ GetSubValue()

lldb::OptionValueSP OptionValueProperties::GetSubValue ( const ExecutionContext * exe_ctx,
llvm::StringRef name,
Status & error ) const
overridevirtual

◆ GetType()

Type lldb_private::OptionValueProperties::GetType ( ) const
inlineoverridevirtual

◆ GetValueForKey()

lldb::OptionValueSP OptionValueProperties::GetValueForKey ( const ExecutionContext * exe_ctx,
llvm::StringRef key ) const
virtual

◆ Initialize()

◆ IsDefault()

bool OptionValueProperties::IsDefault ( ) const
overridevirtual

Return true if the current value equals the default value.

Subclasses that store a default value should override this to compare against it. The base implementation falls back to OptionWasSet(), which is a reasonable approximation for types without an explicit default.

Reimplemented from lldb_private::OptionValue.

Definition at line 355 of file OptionValueProperties.cpp.

References m_properties.

◆ ProtectedGetPropertyAtIndex() [1/2]

◆ ProtectedGetPropertyAtIndex() [2/2]

const Property * lldb_private::OptionValueProperties::ProtectedGetPropertyAtIndex ( size_t idx) const
inlineprotected

Definition at line 175 of file OptionValueProperties.h.

References m_properties.

◆ SetExpectedPath()

void OptionValueProperties::SetExpectedPath ( std::string path)

Definition at line 38 of file OptionValueProperties.cpp.

References m_expected_path.

Referenced by Initialize().

◆ SetPropertyAtIndex()

template<typename T>
bool lldb_private::OptionValueProperties::SetPropertyAtIndex ( size_t idx,
T t,
const ExecutionContext * exe_ctx = nullptr ) const
inline

◆ SetPropertyAtIndexFromArgs()

◆ SetSubValue()

Status OptionValueProperties::SetSubValue ( const ExecutionContext * exe_ctx,
VarSetOperationType op,
llvm::StringRef path,
llvm::StringRef value )
overridevirtual

◆ SetValueChangedCallback()

void OptionValueProperties::SetValueChangedCallback ( size_t property_idx,
std::function< void()> callback )

Definition at line 43 of file OptionValueProperties.cpp.

References ProtectedGetPropertyAtIndex().

◆ SetValueFromString()

◆ ToJSON()

llvm::json::Value OptionValueProperties::ToJSON ( const ExecutionContext * exe_ctx) const
overridevirtual

◆ VerifyPath()

bool OptionValueProperties::VerifyPath ( )
protected

Member Data Documentation

◆ m_expected_path

std::string lldb_private::OptionValueProperties::m_expected_path
protected

Definition at line 187 of file OptionValueProperties.h.

Referenced by SetExpectedPath(), and VerifyPath().

◆ m_name

std::string lldb_private::OptionValueProperties::m_name
protected

Definition at line 184 of file OptionValueProperties.h.

Referenced by GetName(), and OptionValueProperties().

◆ m_name_to_index

llvm::StringMap<size_t> lldb_private::OptionValueProperties::m_name_to_index
protected

◆ m_properties

std::vector<Property> lldb_private::OptionValueProperties::m_properties
protected

The documentation for this class was generated from the following files: