ATLAS Offline Software
Classes | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
RNTupleContainer Class Reference

#include <src/RNTupleContainer.h>

Inheritance diagram for RNTupleContainer:
Collaboration diagram for RNTupleContainer:

Classes

struct  FieldDesc
 Definition of a field info structure. More...
 

Public Member Functions

 RNTupleContainer ()
 Standard constructor. More...
 
virtual ~RNTupleContainer ()
 
virtual pool::DbStatus close () override final
 Close the container and deallocate resources. More...
 
virtual pool::DbStatus open (pool::DbDatabase &dbH, const std::string &nam, const pool::DbTypeInfo *info, pool::DbAccessMode mod) override final
 Open the container for object access. More...
 
virtual pool::DbStatus checkAccess (pool::DbDatabase &dbH, const std::string &nam) const override final
 Check if we can access the container for reading with the given type. More...
 
virtual pool::DbStatus getOption (pool::DbOption &opt) override final
 Access options. More...
 
virtual pool::DbStatus setOption (const pool::DbOption &opt) override final
 Set options. More...
 
virtual uint64_t size () override final
 Number of entries within the container. More...
 
const std::string & getName () const
 Return the name of the container. More...
 
bool isDirty () const
 Return true if this branch container was updated and it's TTree needs to be Filled. More...
 
void clearDirty ()
 Clear the dirty status (used after containing TTree was Filled) More...
 
virtual pool::DbStatus loadObject (void **ptr, pool::ShapeH shape, Token::OID_t &oid) override final
 Find object by object identifier and load it into memory. More...
 
virtual pool::DbStatus writeObject (ActionList::value_type &) override final
 Commit single entry to container. More...
 
virtual uint64_t nextRecordId () override final
 Number of next record in the container (=size if no delete is allowed) More...
 
virtual void useNextRecordId (uint64_t nextID) override final
 Suggest next Record ID for tbe next object written - used only with synced indexes. More...
 
virtual pool::DbStatus select (pool::DbSelect &sel) override final
 Define selection. More...
 
virtual pool::DbStatus fetch (pool::DbSelect &sel) override final
 Fetch next object address of the selection to set token. More...
 
virtual pool::DbStatus transAct (pool::Transaction::Action action) override final
 Execute transaction action. More...
 
virtual pool::DbStatus save (pool::DbObjectHandle< pool::DbObject > &objH) override final
 Add single entry to container. More...
 
virtual void release () override
 Release instance (Abstract interfaces do not expose destructor!) More...
 
virtual std::string name () const override
 Get container name. More...
 
virtual void * allocate (unsigned long siz, DbContainer &cntH, ShapeH shape) override
 In place allocation of raw memory for the transient object. More...
 
virtual DbStatus allocate (DbContainer &cntH, const void *object, ShapeH shape, Token::OID_t &oid) override
 In place allocation of object location. More...
 
virtual DbStatus free (void *ptr, DbContainer &cntH) override
 In place deletion of raw memory. More...
 
virtual DbStatus fetch (const Token::OID_t &linkH, Token::OID_t &stmt)
 Fetch refined object address. Default implementation returns identity. More...
 
virtual DbStatus destroy (const Token::OID_t &lnkH) override
 Add the specified object to the delete stack. More...
 
virtual DbStatus update (DbContainer &cntH, const void *object, ShapeH shape, const Token::OID_t &linkH) override
 Update existing object in the container. More...
 
virtual DbStatus update (DbContainer &cntH, const void *object, ShapeH shape, const DbObjectHandle< DbObject > &objH) override
 Update existing object in the container. More...
 
virtual DbStatus save (DbContainer &cntH, const void *object, ShapeH shape, Token::OID_t &linkH) override
 Save new object in the container and return its handle. More...
 
virtual DbStatus load (void **ptr, ShapeH shape, const Token::OID_t &lnkH, Token::OID_t &oid, bool any_next) override
 Find object within the container and load it into memory. More...
 
virtual DbStatus clearStack ()
 Clear Transaction stack containing transaction requests. More...
 

Protected Types

typedef std::vector< DbActionActionList
 

Protected Member Functions

int stackType () const
 Access accumulated stack entry types. More...
 
size_t stackSize () const
 Access stack size. More...
 
virtual bool updatesPending () const override
 Query the pending transaction stack. More...
 
ActionList::value_type * stackEntry (size_t which)
 Internal: get access to stack entry. More...
 
virtual DbStatus destroyObject (ActionList::value_type &)
 Destroy persistent object in the container; does not touch transient! More...
 
virtual DbStatus updateObject (ActionList::value_type &)
 Update persistent object in the container. More...
 
virtual DbStatus commitTransaction ()
 Execute object modification requests during a transaction. More...
 

Protected Attributes

std::string m_name
 Container name. More...
 
bool m_canUpdate
 Flag to indicate if object updates are supported. More...
 
bool m_canDestroy
 Flag to indicate if object removals are supported. More...
 

Private Member Functions

pool::DbStatus initObjectFieldDesc (FieldDesc &dsc)
 Init a field description for an object (i.e. find TClass etc.) More...
 

Private Attributes

const pool::DbTypeInfom_type {}
 reference to exact type description More...
 
std::vector< FieldDescm_fieldDescs
 List of field descriptors. More...
 
pool::DbDatabase m_dbH
 Parent Database handle. More...
 
pool::RootDatabasem_rootDb
 Root database file reference. More...
 
int m_ioBytes
 Number of bytes written/read during last operation. Set to -1 if it failed. More...
 
bool m_isDirty
 flag set on writing to prevent double writes in the same commit More...
 
uint64_t m_index
 
uint64_t m_indexSize
 
int64_t m_indexBump
 
const uint32_t m_indexMulti
 
RootStorageSvc::RNTupleWriterHelperm_ntupleWriter = nullptr
 Internal cache of the RNTupleWriterHelper. More...
 
ROOT::RNTupleReader * m_ntupleReader {}
 Internal cache of the native RNTupleReader. More...
 
std::unique_ptr< RootAuxDynIO::IFactoryToolm_auxDynTool
 Factory object from AuxDynIO plugin that creates AuxDyn readers and writers. More...
 
ActionList m_stack
 Transaction fifo storage for writing. More...
 
size_t m_size
 Current size of the transaction stack. More...
 
size_t m_writeSize
 Number of objects to be written out during open transaction. More...
 
int m_stackType
 Accumulated stack entry types. More...
 

Detailed Description

Description: RNTUPLE specific implementation of Database Container.

Definition at line 50 of file RNTupleContainer.h.

Member Typedef Documentation

◆ ActionList

typedef std::vector< DbAction > pool::DbContainerImp::ActionList
protectedinherited

Definition at line 63 of file DbContainerImp.h.

Constructor & Destructor Documentation

◆ RNTupleContainer()

RNTupleContainer::RNTupleContainer ( )

Standard constructor.

◆ ~RNTupleContainer()

virtual RNTupleContainer::~RNTupleContainer ( )
virtual

Member Function Documentation

◆ allocate() [1/2]

virtual DbStatus pool::DbContainerImp::allocate ( DbContainer cntH,
const void *  object,
ShapeH  shape,
Token::OID_t oid 
)
overridevirtualinherited

In place allocation of object location.

Implements pool::IDbContainer.

◆ allocate() [2/2]

virtual void* pool::DbContainerImp::allocate ( unsigned long  siz,
DbContainer cntH,
ShapeH  shape 
)
overridevirtualinherited

In place allocation of raw memory for the transient object.

Implements pool::IDbContainer.

◆ checkAccess()

virtual pool::DbStatus RNTupleContainer::checkAccess ( pool::DbDatabase dbH,
const std::string &  nam 
) const
finaloverridevirtual

Check if we can access the container for reading with the given type.

Implements pool::IDbContainer.

◆ clearDirty()

void RNTupleContainer::clearDirty ( )
inline

Clear the dirty status (used after containing TTree was Filled)

Definition at line 158 of file RNTupleContainer.h.

158 { m_isDirty = false; }

◆ clearStack()

virtual DbStatus pool::DbContainerImp::clearStack ( )
virtualinherited

Clear Transaction stack containing transaction requests.

◆ close()

virtual pool::DbStatus RNTupleContainer::close ( )
finaloverridevirtual

Close the container and deallocate resources.

Reimplemented from pool::DbContainerImp.

◆ commitTransaction()

virtual DbStatus pool::DbContainerImp::commitTransaction ( )
protectedvirtualinherited

Execute object modification requests during a transaction.

◆ destroy()

virtual DbStatus pool::DbContainerImp::destroy ( const Token::OID_t lnkH)
overridevirtualinherited

Add the specified object to the delete stack.

Implements pool::IDbContainer.

◆ destroyObject()

virtual DbStatus pool::DbContainerImp::destroyObject ( ActionList::value_type &  )
inlineprotectedvirtualinherited

Destroy persistent object in the container; does not touch transient!

Reimplemented in pool::RootKeyContainer.

Definition at line 97 of file DbContainerImp.h.

98  { return Error; }

◆ fetch() [1/2]

virtual DbStatus pool::DbContainerImp::fetch ( const Token::OID_t linkH,
Token::OID_t stmt 
)
virtualinherited

Fetch refined object address. Default implementation returns identity.

Reimplemented in pool::RootTreeContainer, and pool::RootKeyContainer.

◆ fetch() [2/2]

virtual pool::DbStatus RNTupleContainer::fetch ( pool::DbSelect sel)
finaloverridevirtual

Fetch next object address of the selection to set token.

Reimplemented from pool::DbContainerImp.

◆ free()

virtual DbStatus pool::DbContainerImp::free ( void *  ptr,
DbContainer cntH 
)
overridevirtualinherited

In place deletion of raw memory.

Implements pool::IDbContainer.

◆ getName()

const std::string& RNTupleContainer::getName ( ) const
inline

Return the name of the container.

Definition at line 151 of file RNTupleContainer.h.

151 { return m_name; }

◆ getOption()

virtual pool::DbStatus RNTupleContainer::getOption ( pool::DbOption opt)
finaloverridevirtual

Access options.

Parameters
opt[IN] Reference to option object.
Returns
DbStatus code indicating success or failure.

Reimplemented from pool::DbContainerImp.

◆ initObjectFieldDesc()

pool::DbStatus RNTupleContainer::initObjectFieldDesc ( FieldDesc dsc)
private

Init a field description for an object (i.e. find TClass etc.)

◆ isDirty()

bool RNTupleContainer::isDirty ( ) const
inline

Return true if this branch container was updated and it's TTree needs to be Filled.

Definition at line 155 of file RNTupleContainer.h.

155 { return m_isDirty; }

◆ load()

virtual DbStatus pool::DbContainerImp::load ( void **  ptr,
ShapeH  shape,
const Token::OID_t lnkH,
Token::OID_t oid,
bool  any_next 
)
overridevirtualinherited

Find object within the container and load it into memory.

Parameters
ptr[IN/OUT] ROOT-style address of the pointer to object
shape[IN] Object type
linkH[IN] Preferred object OID
oid[OUT] Actual object OID
any_next[IN] On selection, objects may be skipped. If objects are skipped, the actual oid will differ from the preferred oid.
Returns
Status code indicating success or failure.

Implements pool::IDbContainer.

Reimplemented in pool::RootKeyContainer.

◆ loadObject()

virtual pool::DbStatus RNTupleContainer::loadObject ( void **  ptr,
pool::ShapeH  shape,
Token::OID_t oid 
)
finaloverridevirtual

Find object by object identifier and load it into memory.

Parameters
ptr[IN/OUT] address of the pointer to object
shape[IN] Object Shape
oid[OUT] Object OID
Returns
Status code indicating success or failure.

Implements pool::DbContainerImp.

◆ name()

virtual std::string pool::DbContainerImp::name ( ) const
inlineoverridevirtualinherited

Get container name.

Implements pool::IDbContainer.

Definition at line 115 of file DbContainerImp.h.

116  { return m_name; }

◆ nextRecordId()

virtual uint64_t RNTupleContainer::nextRecordId ( )
finaloverridevirtual

Number of next record in the container (=size if no delete is allowed)

Reimplemented from pool::DbContainerImp.

◆ open()

virtual pool::DbStatus RNTupleContainer::open ( pool::DbDatabase dbH,
const std::string &  nam,
const pool::DbTypeInfo info,
pool::DbAccessMode  mod 
)
finaloverridevirtual

Open the container for object access.

Implements pool::IDbContainer.

◆ release()

virtual void pool::DbContainerImp::release ( )
inlineoverridevirtualinherited

Release instance (Abstract interfaces do not expose destructor!)

Implements pool::IDbContainer.

Definition at line 111 of file DbContainerImp.h.

111 { delete this; }

◆ save() [1/2]

virtual DbStatus pool::DbContainerImp::save ( DbContainer cntH,
const void *  object,
ShapeH  shape,
Token::OID_t linkH 
)
overridevirtualinherited

Save new object in the container and return its handle.

Parameters
cntH[IN] Handle to container object.
object[IN] Data object
linkH[OUT] Internal OID to identify object.
Returns
DbStatus code indicating success or failure.

Implements pool::IDbContainer.

◆ save() [2/2]

virtual pool::DbStatus RNTupleContainer::save ( pool::DbObjectHandle< pool::DbObject > &  objH)
finaloverridevirtual

Add single entry to container.

Reimplemented from pool::DbContainerImp.

◆ select()

virtual pool::DbStatus RNTupleContainer::select ( pool::DbSelect sel)
finaloverridevirtual

Define selection.

Implements pool::IDbContainer.

◆ setOption()

virtual pool::DbStatus RNTupleContainer::setOption ( const pool::DbOption opt)
finaloverridevirtual

Set options.

Parameters
opt[IN] Reference to option object.
Returns
DbStatus code indicating success or failure.

Reimplemented from pool::DbContainerImp.

◆ size()

virtual uint64_t RNTupleContainer::size ( )
finaloverridevirtual

Number of entries within the container.

Reimplemented from pool::DbContainerImp.

◆ stackEntry()

ActionList::value_type* pool::DbContainerImp::stackEntry ( size_t  which)
inlineprotectedinherited

Internal: get access to stack entry.

Definition at line 94 of file DbContainerImp.h.

95  { return (which <= m_size) ? &(*(m_stack.begin()+which)) : 0; }

◆ stackSize()

size_t pool::DbContainerImp::stackSize ( ) const
inlineprotectedinherited

Access stack size.

Definition at line 88 of file DbContainerImp.h.

89  { return m_size; }

◆ stackType()

int pool::DbContainerImp::stackType ( ) const
inlineprotectedinherited

Access accumulated stack entry types.

Definition at line 85 of file DbContainerImp.h.

86  { return m_stackType; }

◆ transAct()

virtual pool::DbStatus RNTupleContainer::transAct ( pool::Transaction::Action  action)
finaloverridevirtual

Execute transaction action.

Reimplemented from pool::DbContainerImp.

◆ update() [1/2]

virtual DbStatus pool::DbContainerImp::update ( DbContainer cntH,
const void *  object,
ShapeH  shape,
const DbObjectHandle< DbObject > &  objH 
)
overridevirtualinherited

Update existing object in the container.

Parameters
cntH[IN] Valid handle to container
object[IN] Data object
objH[IN] Object handle
Returns
Status code indicating success or failure.

Implements pool::IDbContainer.

◆ update() [2/2]

virtual DbStatus pool::DbContainerImp::update ( DbContainer cntH,
const void *  object,
ShapeH  shape,
const Token::OID_t linkH 
)
overridevirtualinherited

Update existing object in the container.

Parameters
cntH[IN] Valid handle to container
object[IN] Data object
linkH[IN/OUT] Object identifier
Returns
Status code indicating success or failure.

Implements pool::IDbContainer.

◆ updateObject()

virtual DbStatus pool::DbContainerImp::updateObject ( ActionList::value_type &  )
inlineprotectedvirtualinherited

Update persistent object in the container.

Definition at line 100 of file DbContainerImp.h.

101  { return Error; }

◆ updatesPending()

virtual bool pool::DbContainerImp::updatesPending ( ) const
inlineoverrideprotectedvirtualinherited

Query the pending transaction stack.

Implements pool::IDbContainer.

Definition at line 91 of file DbContainerImp.h.

92  { return m_size > 0; }

◆ useNextRecordId()

virtual void RNTupleContainer::useNextRecordId ( uint64_t  )
finaloverridevirtual

Suggest next Record ID for tbe next object written - used only with synced indexes.

Reimplemented from pool::DbContainerImp.

◆ writeObject()

virtual pool::DbStatus RNTupleContainer::writeObject ( ActionList::value_type &  )
finaloverridevirtual

Commit single entry to container.

Reimplemented from pool::DbContainerImp.

Member Data Documentation

◆ m_auxDynTool

std::unique_ptr<RootAuxDynIO::IFactoryTool> RNTupleContainer::m_auxDynTool
private

Factory object from AuxDynIO plugin that creates AuxDyn readers and writers.

Definition at line 113 of file RNTupleContainer.h.

◆ m_canDestroy

bool pool::DbContainerImp::m_canDestroy
protectedinherited

Flag to indicate if object removals are supported.

Definition at line 80 of file DbContainerImp.h.

◆ m_canUpdate

bool pool::DbContainerImp::m_canUpdate
protectedinherited

Flag to indicate if object updates are supported.

Definition at line 78 of file DbContainerImp.h.

◆ m_dbH

pool::DbDatabase RNTupleContainer::m_dbH
private

Parent Database handle.

Definition at line 93 of file RNTupleContainer.h.

◆ m_fieldDescs

std::vector<FieldDesc> RNTupleContainer::m_fieldDescs
private

List of field descriptors.

Definition at line 91 of file RNTupleContainer.h.

◆ m_index

uint64_t RNTupleContainer::m_index
private

Definition at line 101 of file RNTupleContainer.h.

◆ m_indexBump

int64_t RNTupleContainer::m_indexBump
private

Definition at line 103 of file RNTupleContainer.h.

◆ m_indexMulti

const uint32_t RNTupleContainer::m_indexMulti
private

Definition at line 104 of file RNTupleContainer.h.

◆ m_indexSize

uint64_t RNTupleContainer::m_indexSize
private

Definition at line 102 of file RNTupleContainer.h.

◆ m_ioBytes

int RNTupleContainer::m_ioBytes
private

Number of bytes written/read during last operation. Set to -1 if it failed.

Definition at line 97 of file RNTupleContainer.h.

◆ m_isDirty

bool RNTupleContainer::m_isDirty
private

flag set on writing to prevent double writes in the same commit

Definition at line 99 of file RNTupleContainer.h.

◆ m_name

std::string pool::DbContainerImp::m_name
protectedinherited

Container name.

Definition at line 76 of file DbContainerImp.h.

◆ m_ntupleReader

ROOT::RNTupleReader* RNTupleContainer::m_ntupleReader {}
private

Internal cache of the native RNTupleReader.

Definition at line 110 of file RNTupleContainer.h.

◆ m_ntupleWriter

RootStorageSvc::RNTupleWriterHelper* RNTupleContainer::m_ntupleWriter = nullptr
private

Internal cache of the RNTupleWriterHelper.

Definition at line 107 of file RNTupleContainer.h.

◆ m_rootDb

pool::RootDatabase* RNTupleContainer::m_rootDb
private

Root database file reference.

Definition at line 95 of file RNTupleContainer.h.

◆ m_size

size_t pool::DbContainerImp::m_size
privateinherited

Current size of the transaction stack.

Definition at line 69 of file DbContainerImp.h.

◆ m_stack

ActionList pool::DbContainerImp::m_stack
privateinherited

Transaction fifo storage for writing.

Definition at line 67 of file DbContainerImp.h.

◆ m_stackType

int pool::DbContainerImp::m_stackType
privateinherited

Accumulated stack entry types.

Definition at line 73 of file DbContainerImp.h.

◆ m_type

const pool::DbTypeInfo* RNTupleContainer::m_type {}
private

reference to exact type description

Definition at line 89 of file RNTupleContainer.h.

◆ m_writeSize

size_t pool::DbContainerImp::m_writeSize
privateinherited

Number of objects to be written out during open transaction.

Definition at line 71 of file DbContainerImp.h.


The documentation for this class was generated from the following file:
pool::DbContainerImp::m_size
size_t m_size
Current size of the transaction stack.
Definition: DbContainerImp.h:69
pool::DbContainerImp::m_name
std::string m_name
Container name.
Definition: DbContainerImp.h:76
RNTupleContainer::m_isDirty
bool m_isDirty
flag set on writing to prevent double writes in the same commit
Definition: RNTupleContainer.h:99
python.Utils.unixtools.which
def which(filename, env=os.environ)
UNIX-style which ---------------------------------------------------------—.
Definition: unixtools.py:39
pool::DbContainerImp::m_stackType
int m_stackType
Accumulated stack entry types.
Definition: DbContainerImp.h:73
pool::DbContainerImp::m_stack
ActionList m_stack
Transaction fifo storage for writing.
Definition: DbContainerImp.h:67
L1Topo::Error
Error
The different types of error that can be flagged in the L1TopoRDO.
Definition: Error.h:16