1 //===-- ModuleChild.h -------------------------------------------*- C++ -*-===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 10 #ifndef liblldb_ModuleChild_h_ 11 #define liblldb_ModuleChild_h_ 12 13 #include "lldb/lldb-forward.h" 14 15 namespace lldb_private { 16 17 //---------------------------------------------------------------------- 18 /// @class ModuleChild ModuleChild.h "lldb/Core/ModuleChild.h" 19 /// A mix in class that contains a pointer back to the module 20 /// that owns the object which inherits from it. 21 //---------------------------------------------------------------------- 22 class ModuleChild { 23 public: 24 //------------------------------------------------------------------ 25 /// Construct with owning module. 26 /// 27 /// @param[in] module 28 /// The module that owns the object that inherits from this 29 /// class. 30 //------------------------------------------------------------------ 31 ModuleChild(const lldb::ModuleSP &module_sp); 32 33 //------------------------------------------------------------------ 34 /// Copy constructor. 35 /// 36 /// @param[in] rhs 37 /// A const ModuleChild class reference to copy. 38 //------------------------------------------------------------------ 39 ModuleChild(const ModuleChild &rhs); 40 41 //------------------------------------------------------------------ 42 /// Destructor. 43 //------------------------------------------------------------------ 44 ~ModuleChild(); 45 46 //------------------------------------------------------------------ 47 /// Assignment operator. 48 /// 49 /// @param[in] rhs 50 /// A const ModuleChild class reference to copy. 51 /// 52 /// @return 53 /// A const reference to this object. 54 //------------------------------------------------------------------ 55 const ModuleChild &operator=(const ModuleChild &rhs); 56 57 //------------------------------------------------------------------ 58 /// Get const accessor for the module pointer. 59 /// 60 /// @return 61 /// A const pointer to the module that owns the object that 62 /// inherits from this class. 63 //------------------------------------------------------------------ 64 lldb::ModuleSP GetModule() const; 65 66 //------------------------------------------------------------------ 67 /// Set accessor for the module pointer. 68 /// 69 /// @param[in] module 70 /// A new module that owns the object that inherits from this 71 /// class. 72 //------------------------------------------------------------------ 73 void SetModule(const lldb::ModuleSP &module_sp); 74 75 protected: 76 //------------------------------------------------------------------ 77 // Member variables 78 //------------------------------------------------------------------ 79 lldb::ModuleWP m_module_wp; ///< The Module that owns the object that inherits 80 ///< from this class. 81 }; 82 83 } // namespace lldb_private 84 85 #endif // liblldb_ModuleChild_h_ 86