ATLAS Offline Software
Control
xAODRootAccess
Root
IObjectManager.cxx
Go to the documentation of this file.
1
// Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2
3
// Local include(s).
4
#include "
xAODRootAccess/tools/IObjectManager.h
"
5
6
namespace
xAOD::Details
{
7
8
IObjectManager::IObjectManager
(std::unique_ptr<THolder> holder)
9
: m_holder(std::move(holder)) {}
10
11
IObjectManager::IObjectManager
(
const
IObjectManager
&
parent
) {
12
13
if
(
parent
.m_holder) {
14
m_holder
= std::make_unique<THolder>(*
parent
.m_holder);
15
}
16
}
17
18
IObjectManager::IObjectManager
(
IObjectManager
&&
parent
) noexcept =
default
;
19
20
IObjectManager::~IObjectManager
() =
default
;
21
22
IObjectManager
&
IObjectManager::operator=
(
const
IObjectManager
&
parent
) {
23
24
// Check if we need to do anything.
25
if
(
this
== &
parent
) {
26
return
*
this
;
27
}
28
29
// Make a copy of the holder if there is one.
30
if
(
parent
.m_holder) {
31
m_holder
= std::make_unique<THolder>(*
parent
.m_holder);
32
}
else
{
33
m_holder
.reset();
34
}
35
36
// Return this object.
37
return
*
this
;
38
}
39
40
IObjectManager
&
IObjectManager::operator=
(
IObjectManager
&&
parent
) noexcept =
41
default
;
42
43
const
THolder
*
IObjectManager::holder
()
const
{
44
45
return
m_holder
.get();
46
}
47
48
THolder
*
IObjectManager::holder
() {
49
50
return
m_holder
.get();
51
}
52
53
}
// namespace xAOD::Details
xAOD::Details::IObjectManager::m_holder
std::unique_ptr< THolder > m_holder
Object holding onto an EDM object in memory.
Definition:
IObjectManager.h:44
xAOD::THolder
This class takes care of holding EDM objects in memory.
Definition:
THolder.h:35
xAOD::Details::IObjectManager::holder
const THolder * holder() const
Accessor to the Holder object.
Definition:
IObjectManager.cxx:43
xAOD::Details::IObjectManager::~IObjectManager
~IObjectManager() override
Destructor.
IObjectManager.h
test_pyathena.parent
parent
Definition:
test_pyathena.py:15
xAOD::Details::IObjectManager::operator=
IObjectManager & operator=(const IObjectManager &parent)
Copy assignment operator.
Definition:
IObjectManager.cxx:22
xAOD::Details::IObjectManager::IObjectManager
IObjectManager(std::unique_ptr< THolder > holder)
Constructor.
Definition:
IObjectManager.cxx:8
xAOD::Details::IObjectManager
Manager for EDM objects created by ROOT.
Definition:
IObjectManager.h:20
xAOD::Details
Definition:
IObjectManager.cxx:6
Generated on Sun Oct 26 2025 21:11:36 for ATLAS Offline Software by
1.8.18