1 //===-- ModuleChild.h -------------------------------------------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 #ifndef liblldb_ModuleChild_h_
11 #define liblldb_ModuleChild_h_
13 #include "lldb/lldb-forward.h"
15 namespace lldb_private {
17 //----------------------------------------------------------------------
18 /// @class ModuleChild ModuleChild.h "lldb/Core/ModuleChild.h"
19 /// @brief A mix in class that contains a pointer back to the module
20 /// that owns the object which inherits from it.
21 //----------------------------------------------------------------------
24 //------------------------------------------------------------------
25 /// Construct with owning module.
28 /// The module that owns the object that inherits from this
30 //------------------------------------------------------------------
31 ModuleChild(const lldb::ModuleSP &module_sp);
33 //------------------------------------------------------------------
37 /// A const ModuleChild class reference to copy.
38 //------------------------------------------------------------------
39 ModuleChild(const ModuleChild &rhs);
41 //------------------------------------------------------------------
43 //------------------------------------------------------------------
46 //------------------------------------------------------------------
47 /// Assignment operator.
50 /// A const ModuleChild class reference to copy.
53 /// A const reference to this object.
54 //------------------------------------------------------------------
55 const ModuleChild &operator=(const ModuleChild &rhs);
57 //------------------------------------------------------------------
58 /// Get const accessor for the module pointer.
61 /// A const pointer to the module that owns the object that
62 /// inherits from this class.
63 //------------------------------------------------------------------
64 lldb::ModuleSP GetModule() const;
66 //------------------------------------------------------------------
67 /// Set accessor for the module pointer.
70 /// A new module that owns the object that inherits from this
72 //------------------------------------------------------------------
73 void SetModule(const lldb::ModuleSP &module_sp);
76 //------------------------------------------------------------------
78 //------------------------------------------------------------------
79 lldb::ModuleWP m_module_wp; ///< The Module that owns the object that inherits
83 } // namespace lldb_private
85 #endif // liblldb_ModuleChild_h_