diff options
Diffstat (limited to 'include/lldb/Interpreter/OptionValueRegex.h')
-rw-r--r-- | include/lldb/Interpreter/OptionValueRegex.h | 110 |
1 files changed, 47 insertions, 63 deletions
diff --git a/include/lldb/Interpreter/OptionValueRegex.h b/include/lldb/Interpreter/OptionValueRegex.h index a094a402b1a9..7125daffedee 100644 --- a/include/lldb/Interpreter/OptionValueRegex.h +++ b/include/lldb/Interpreter/OptionValueRegex.h @@ -19,71 +19,55 @@ namespace lldb_private { -class OptionValueRegex : public OptionValue -{ +class OptionValueRegex : public OptionValue { public: - OptionValueRegex(const char *value = nullptr) : - OptionValue(), - m_regex (value) - { - } - - ~OptionValueRegex() override = default; - - //--------------------------------------------------------------------- - // Virtual subclass pure virtual overrides - //--------------------------------------------------------------------- - - OptionValue::Type - GetType() const override - { - return eTypeRegex; - } - - void - DumpValue(const ExecutionContext *exe_ctx, Stream &strm, uint32_t dump_mask) override; - - Error - SetValueFromString(llvm::StringRef value, - VarSetOperationType op = eVarSetOperationAssign) override; - - bool - Clear() override - { - m_regex.Clear(); - m_value_was_set = false; - return true; - } - - lldb::OptionValueSP - DeepCopy() const override; - - //--------------------------------------------------------------------- - // Subclass specific functions - //--------------------------------------------------------------------- - const RegularExpression * - GetCurrentValue() const - { - return (m_regex.IsValid() ? &m_regex : nullptr); - } - - void - SetCurrentValue (const char *value) - { - if (value && value[0]) - m_regex.Compile (value); - else - m_regex.Clear(); - } - - bool - IsValid () const - { - return m_regex.IsValid(); - } - + OptionValueRegex(const char *value = nullptr) + : OptionValue(), m_regex(llvm::StringRef::withNullAsEmpty(value)) {} + + ~OptionValueRegex() override = default; + + //--------------------------------------------------------------------- + // Virtual subclass pure virtual overrides + //--------------------------------------------------------------------- + + OptionValue::Type GetType() const override { return eTypeRegex; } + + void DumpValue(const ExecutionContext *exe_ctx, Stream &strm, + uint32_t dump_mask) override; + + Error + SetValueFromString(llvm::StringRef value, + VarSetOperationType op = eVarSetOperationAssign) override; + Error + SetValueFromString(const char *, + VarSetOperationType = eVarSetOperationAssign) = delete; + + bool Clear() override { + m_regex.Clear(); + m_value_was_set = false; + return true; + } + + lldb::OptionValueSP DeepCopy() const override; + + //--------------------------------------------------------------------- + // Subclass specific functions + //--------------------------------------------------------------------- + const RegularExpression *GetCurrentValue() const { + return (m_regex.IsValid() ? &m_regex : nullptr); + } + + void SetCurrentValue(const char *value) { + if (value && value[0]) + m_regex.Compile(llvm::StringRef(value)); + else + m_regex.Clear(); + } + + bool IsValid() const { return m_regex.IsValid(); } + protected: - RegularExpression m_regex; + RegularExpression m_regex; }; } // namespace lldb_private |