aboutsummaryrefslogtreecommitdiff
path: root/contrib/llvm-project/lldb/include/lldb/Core/ModuleChild.h
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/llvm-project/lldb/include/lldb/Core/ModuleChild.h')
-rw-r--r--contrib/llvm-project/lldb/include/lldb/Core/ModuleChild.h62
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_