ATLAS Offline Software
Public Member Functions | Private Attributes | List of all members
xAOD::Details::IObjectManager Class Referenceabstract

Manager for EDM objects created by ROOT. More...

#include <IObjectManager.h>

Inheritance diagram for xAOD::Details::IObjectManager:
Collaboration diagram for xAOD::Details::IObjectManager:

Public Member Functions

 IObjectManager (std::unique_ptr< THolder > holder)
 Constructor. More...
 
 IObjectManager (const IObjectManager &parent)
 Copy constructor. More...
 
 IObjectManager (IObjectManager &&parent) noexcept
 Move constructor. More...
 
 ~IObjectManager () override
 Destructor. More...
 
IObjectManageroperator= (const IObjectManager &parent)
 Copy assignment operator. More...
 
IObjectManageroperator= (IObjectManager &&parent) noexcept
 Move assignment operator. More...
 
const THolderholder () const
 Accessor to the Holder object. More...
 
THolderholder ()
 Accessor to the Holder object. More...
 
virtual ::Int_t getEntry (::Int_t getall=0)=0
 Function for updating the object in memory if needed. More...
 
virtual const void * object () const =0
 Function getting a const pointer to the object being handled. More...
 
virtual void * object ()=0
 Function getting a pointer to the object being handled. More...
 
virtual void setObject (void *obj)=0
 Function replacing the object being handled. More...
 
virtual ::Bool_t create ()=0
 Create the object for the current event. More...
 
virtual ::Bool_t isSet () const =0
 Check if the object was set for the current event. More...
 
virtual void reset ()=0
 Reset the object at the end of processing of an event. More...
 

Private Attributes

std::unique_ptr< THolderm_holder
 Object holding onto an EDM object in memory. More...
 

Detailed Description

Manager for EDM objects created by ROOT.

This class is used when an EDM object is meant to be created by ROOT's schema evolution system, behind the scenes. It serves as a base class for the TTree and RNTuple based object managers.

Definition at line 20 of file IObjectManager.h.

Constructor & Destructor Documentation

◆ IObjectManager() [1/3]

xAOD::Details::IObjectManager::IObjectManager ( std::unique_ptr< THolder holder)

Constructor.

Definition at line 8 of file IObjectManager.cxx.

9  : m_holder(std::move(holder)) {}

◆ IObjectManager() [2/3]

xAOD::Details::IObjectManager::IObjectManager ( const IObjectManager parent)

Copy constructor.

Definition at line 11 of file IObjectManager.cxx.

11  {
12 
13  if (parent.m_holder) {
14  m_holder = std::make_unique<THolder>(*parent.m_holder);
15  }
16 }

◆ IObjectManager() [3/3]

xAOD::Details::IObjectManager::IObjectManager ( IObjectManager &&  parent)
defaultnoexcept

Move constructor.

◆ ~IObjectManager()

xAOD::Details::IObjectManager::~IObjectManager ( )
overridedefault

Destructor.

Member Function Documentation

◆ create()

virtual ::Bool_t xAOD::TVirtualManager::create ( )
pure virtualinherited

◆ getEntry()

virtual ::Int_t xAOD::TVirtualManager::getEntry ( ::Int_t  getall = 0)
pure virtualinherited

◆ holder() [1/2]

THolder * xAOD::Details::IObjectManager::holder ( )

Accessor to the Holder object.

Definition at line 48 of file IObjectManager.cxx.

48  {
49 
50  return m_holder.get();
51 }

◆ holder() [2/2]

const THolder * xAOD::Details::IObjectManager::holder ( ) const

Accessor to the Holder object.

Definition at line 43 of file IObjectManager.cxx.

43  {
44 
45  return m_holder.get();
46 }

◆ isSet()

virtual ::Bool_t xAOD::TVirtualManager::isSet ( ) const
pure virtualinherited

◆ object() [1/2]

virtual const void* xAOD::TVirtualManager::object ( ) const
pure virtualinherited

◆ object() [2/2]

virtual void* xAOD::TVirtualManager::object ( )
pure virtualinherited

◆ operator=() [1/2]

IObjectManager & xAOD::Details::IObjectManager::operator= ( const IObjectManager parent)

Copy assignment operator.

Definition at line 22 of file IObjectManager.cxx.

22  {
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 }

◆ operator=() [2/2]

IObjectManager & xAOD::Details::IObjectManager::operator= ( IObjectManager &&  parent)
defaultnoexcept

Move assignment operator.

◆ reset()

virtual void xAOD::TVirtualManager::reset ( )
pure virtualinherited

◆ setObject()

virtual void xAOD::TVirtualManager::setObject ( void *  obj)
pure virtualinherited

Member Data Documentation

◆ m_holder

std::unique_ptr<THolder> xAOD::Details::IObjectManager::m_holder
private

Object holding onto an EDM object in memory.

Definition at line 44 of file IObjectManager.h.


The documentation for this class was generated from the following files:
xAOD::Details::IObjectManager::m_holder
std::unique_ptr< THolder > m_holder
Object holding onto an EDM object in memory.
Definition: IObjectManager.h:44
xAOD::Details::IObjectManager::holder
const THolder * holder() const
Accessor to the Holder object.
Definition: IObjectManager.cxx:43
test_pyathena.parent
parent
Definition: test_pyathena.py:15