Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-05-10 08:42:45

0001 //===-- ModuleChild.h -------------------------------------------*- C++ -*-===//
0002 //
0003 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
0004 // See https://llvm.org/LICENSE.txt for license information.
0005 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
0006 //
0007 //===----------------------------------------------------------------------===//
0008 
0009 #ifndef LLDB_CORE_MODULECHILD_H
0010 #define LLDB_CORE_MODULECHILD_H
0011 
0012 #include "lldb/lldb-forward.h"
0013 
0014 namespace lldb_private {
0015 
0016 /// \class ModuleChild ModuleChild.h "lldb/Core/ModuleChild.h"
0017 /// A mix in class that contains a pointer back to the module
0018 ///        that owns the object which inherits from it.
0019 class ModuleChild {
0020 public:
0021   /// Construct with owning module.
0022   ///
0023   /// \param[in] module_sp
0024   ///     The module that owns the object that inherits from this
0025   ///     class.
0026   ModuleChild(const lldb::ModuleSP &module_sp);
0027 
0028   /// Destructor.
0029   ~ModuleChild();
0030 
0031   /// Assignment operator.
0032   ///
0033   /// \param[in] rhs
0034   ///     A const ModuleChild class reference to copy.
0035   ///
0036   /// \return
0037   ///     A const reference to this object.
0038   const ModuleChild &operator=(const ModuleChild &rhs);
0039 
0040   /// Get const accessor for the module pointer.
0041   ///
0042   /// \return
0043   ///     A const pointer to the module that owns the object that
0044   ///     inherits from this class.
0045   lldb::ModuleSP GetModule() const;
0046 
0047   /// Set accessor for the module pointer.
0048   ///
0049   /// \param[in] module_sp
0050   ///     A new module that owns the object that inherits from this
0051   ///     class.
0052   void SetModule(const lldb::ModuleSP &module_sp);
0053 
0054 protected:
0055   /// The Module that owns the object that inherits from this class.
0056   lldb::ModuleWP m_module_wp;
0057 };
0058 
0059 } // namespace lldb_private
0060 
0061 #endif // LLDB_CORE_MODULECHILD_H