| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- //===-- Property.h ----------------------------------------------*- C++ -*-===//
- //
- // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
- // See https://llvm.org/LICENSE.txt for license information.
- // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- //
- //===----------------------------------------------------------------------===//
- #ifndef LLDB_INTERPRETER_PROPERTY_H
- #define LLDB_INTERPRETER_PROPERTY_H
- #include "lldb/Interpreter/OptionValue.h"
- #include "lldb/Utility/ConstString.h"
- #include "lldb/Utility/Flags.h"
- #include "lldb/lldb-defines.h"
- #include "lldb/lldb-private-types.h"
- #include <string>
- namespace lldb_private {
- // A structure that can be used to create a global table for all properties.
- // Property class instances can be constructed using one of these.
- struct PropertyDefinition {
- const char *name;
- OptionValue::Type type;
- bool global; // false == this setting is a global setting by default
- uintptr_t default_uint_value;
- const char *default_cstr_value;
- OptionEnumValues enum_values;
- const char *description;
- };
- using PropertyDefinitions = llvm::ArrayRef<PropertyDefinition>;
- class Property {
- public:
- Property(const PropertyDefinition &definition);
- Property(ConstString name, ConstString desc, bool is_global,
- const lldb::OptionValueSP &value_sp);
- llvm::StringRef GetName() const { return m_name.GetStringRef(); }
- llvm::StringRef GetDescription() const {
- return m_description.GetStringRef();
- }
- const lldb::OptionValueSP &GetValue() const { return m_value_sp; }
- void SetOptionValue(const lldb::OptionValueSP &value_sp) {
- m_value_sp = value_sp;
- }
- bool IsValid() const { return (bool)m_value_sp; }
- bool IsGlobal() const { return m_is_global; }
- void Dump(const ExecutionContext *exe_ctx, Stream &strm,
- uint32_t dump_mask) const;
- bool DumpQualifiedName(Stream &strm) const;
- void DumpDescription(CommandInterpreter &interpreter, Stream &strm,
- uint32_t output_width,
- bool display_qualified_name) const;
- void SetValueChangedCallback(std::function<void()> callback);
- protected:
- ConstString m_name;
- ConstString m_description;
- lldb::OptionValueSP m_value_sp;
- bool m_is_global;
- };
- } // namespace lldb_private
- #endif // LLDB_INTERPRETER_PROPERTY_H
|