diff options
Diffstat (limited to 'contrib/llvm-project/lldb/include/lldb/Core/ModuleChild.h')
-rw-r--r-- | contrib/llvm-project/lldb/include/lldb/Core/ModuleChild.h | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/contrib/llvm-project/lldb/include/lldb/Core/ModuleChild.h b/contrib/llvm-project/lldb/include/lldb/Core/ModuleChild.h new file mode 100644 index 000000000000..8a81c1a6cf8a --- /dev/null +++ b/contrib/llvm-project/lldb/include/lldb/Core/ModuleChild.h @@ -0,0 +1,62 @@ +//===-- ModuleChild.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 liblldb_ModuleChild_h_ +#define liblldb_ModuleChild_h_ + +#include "lldb/lldb-forward.h" + +namespace lldb_private { + +/// \class ModuleChild ModuleChild.h "lldb/Core/ModuleChild.h" +/// A mix in class that contains a pointer back to the module +/// that owns the object which inherits from it. +class ModuleChild { +public: + /// Construct with owning module. + /// + /// \param[in] module + /// The module that owns the object that inherits from this + /// class. + ModuleChild(const lldb::ModuleSP &module_sp); + + /// Destructor. + ~ModuleChild(); + + /// Assignment operator. + /// + /// \param[in] rhs + /// A const ModuleChild class reference to copy. + /// + /// \return + /// A const reference to this object. + const ModuleChild &operator=(const ModuleChild &rhs); + + /// Get const accessor for the module pointer. + /// + /// \return + /// A const pointer to the module that owns the object that + /// inherits from this class. + lldb::ModuleSP GetModule() const; + + /// Set accessor for the module pointer. + /// + /// \param[in] module + /// A new module that owns the object that inherits from this + /// class. + void SetModule(const lldb::ModuleSP &module_sp); + +protected: + // Member variables + lldb::ModuleWP m_module_wp; ///< The Module that owns the object that inherits + ///< from this class. +}; + +} // namespace lldb_private + +#endif // liblldb_ModuleChild_h_ |