ATLAS Offline Software
Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Private Attributes | List of all members
pool::RootKeyContainer Class Reference

#include <src/RootKeyContainer.h>

Inheritance diagram for pool::RootKeyContainer:
Collaboration diagram for pool::RootKeyContainer:

Public Member Functions

 RootKeyContainer ()
 Standard constructor. More...
 
virtual ~RootKeyContainer ()
 Standard destructor. More...
 
 RootKeyContainer (const RootKeyContainer &)=delete
 
RootKeyContaineroperator= (const RootKeyContainer &)=delete
 
virtual DbStatus close ()
 Close the container and deallocate resources. More...
 
virtual DbStatus open (DbDatabase &dbH, const std::string &nam, const DbTypeInfo *info, DbAccessMode mod)
 Open the container for object access. More...
 
virtual DbStatus isShapeSupported (const DbTypeInfo *) const
 Ask if a given shape is supported. More...
 
virtual DbStatus select (DbSelect &criteria)
 Define selection criteria. More...
 
virtual uint64_t size ()
 Number of entries within the container. More...
 
virtual uint64_t nextRecordId ()
 Number of record in the container. More...
 
virtual DbStatus fetch (DbSelect &sel)
 Fetch next object address of the selection to set token. More...
 
virtual DbStatus fetch (const Token::OID_t &linkH, Token::OID_t &stmt)
 Fetch a column identified by its link in the container. More...
 
virtual DbStatus loadObject (void **ptr, ShapeH shape, Token::OID_t &oid)
 Find object by object identifier and load it into memory. More...
 
virtual DbStatus load (void **ptr, ShapeH shape, const Token::OID_t &linkH, Token::OID_t &oid, bool any_next)
 Interface Implementation: Find entry in container. More...
 
virtual DbStatus getOption (DbOption &opt)
 Access options. More...
 
virtual DbStatus setOption (const DbOption &opt)
 Set options. More...
 
virtual DbStatus transAct (Transaction::Action action)
 Execute end of object modification requests during a transaction. 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 useNextRecordId (uint64_t) override
 Suggest next Record ID for tbe next object written - used only with synced indexes. 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 update (DbSelect &) override
 Perform UPDATE statement. 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 destroy (DbSelect &) override
 Perform DELETE statement. More...
 
virtual DbStatus destroy (const Token::OID_t &lnkH) override
 Add the specified object to the delete stack. More...
 
virtual DbStatus save (DbObjectHandle< DbObject > &objH) override
 Add single entry to 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 clearStack ()
 Clear Transaction stack containing transaction requests. More...
 

Protected Types

typedef std::vector< DbActionActionList
 

Protected Member Functions

virtual DbStatus destroyObject (ActionList::value_type &)
 Destroy persistent object in the container. More...
 
virtual DbStatus writeObject (ActionList::value_type &)
 Commit single entry to container. More...
 
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 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 Attributes

TDirectory * m_dir
 Reference to the root tree object. More...
 
DbDatabase m_dbH
 Parent Database handle. More...
 
RootDatabasem_rootDb
 Root database file reference. More...
 
RootKeyIOHandlerm_ioHandler
 CINT IO handler to allow user overloads.... More...
 
int m_policy
 Policy flag. More...
 
int m_ioBytes
 Number of bytes written/read during last operation. Set to -1 if it failed. 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: ROOT specific implementation of Database container. Since objects in root are stored in "trees with branches", this object corresponds top a tuple (Tree/Branch), where each object type (determined by the location of the transient object within the data store) is accessed by the "Event" number inside its tree.

Author
M.Frank
Date
1/8/2002
Version
1.0

Definition at line 45 of file RootKeyContainer.h.

Member Typedef Documentation

◆ ActionList

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

Definition at line 63 of file DbContainerImp.h.

Constructor & Destructor Documentation

◆ RootKeyContainer() [1/2]

pool::RootKeyContainer::RootKeyContainer ( )

Standard constructor.

◆ ~RootKeyContainer()

virtual pool::RootKeyContainer::~RootKeyContainer ( )
virtual

Standard destructor.

◆ RootKeyContainer() [2/2]

pool::RootKeyContainer::RootKeyContainer ( const RootKeyContainer )
delete

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.

◆ clearStack()

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

Clear Transaction stack containing transaction requests.

◆ close()

virtual DbStatus pool::RootKeyContainer::close ( )
virtual

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() [1/2]

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

Add the specified object to the delete stack.

Implements pool::IDbContainer.

◆ destroy() [2/2]

virtual DbStatus pool::DbContainerImp::destroy ( DbSelect )
inlineoverridevirtualinherited

Perform DELETE statement.

Implements pool::IDbContainer.

Definition at line 155 of file DbContainerImp.h.

155 { return Error; }

◆ destroyObject()

virtual DbStatus pool::RootKeyContainer::destroyObject ( ActionList::value_type &  )
protectedvirtual

Destroy persistent object in the container.

Reimplemented from pool::DbContainerImp.

◆ fetch() [1/2]

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

Fetch a column identified by its link in the container.

Reimplemented from pool::DbContainerImp.

◆ fetch() [2/2]

virtual DbStatus pool::RootKeyContainer::fetch ( DbSelect sel)
virtual

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.

◆ getOption()

virtual DbStatus pool::RootKeyContainer::getOption ( DbOption opt)
virtual

Access options.

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

Reimplemented from pool::DbContainerImp.

◆ isShapeSupported()

virtual DbStatus pool::RootKeyContainer::isShapeSupported ( const DbTypeInfo ) const
inlinevirtual

Ask if a given shape is supported.

Implements pool::IDbContainer.

Definition at line 79 of file RootKeyContainer.h.

80  { return true; }

◆ load()

virtual DbStatus pool::RootKeyContainer::load ( void **  ptr,
ShapeH  shape,
const Token::OID_t linkH,
Token::OID_t oid,
bool  any_next 
)
virtual

Interface Implementation: Find entry in container.

Reimplemented from pool::DbContainerImp.

◆ loadObject()

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

Find object by object identifier and load it into memory.

Parameters
ptr[IN/OUT] ROOT-style address of the pointer to object
shape[IN] Object type
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 pool::RootKeyContainer::nextRecordId ( )
virtual

Number of record in the container.

Reimplemented from pool::DbContainerImp.

◆ open()

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

Open the container for object access.

Implements pool::IDbContainer.

◆ operator=()

RootKeyContainer& pool::RootKeyContainer::operator= ( const RootKeyContainer )
delete

◆ 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 DbStatus pool::DbContainerImp::save ( DbObjectHandle< DbObject > &  objH)
overridevirtualinherited

Add single entry to container.

Implements pool::IDbContainer.

◆ select()

virtual DbStatus pool::RootKeyContainer::select ( DbSelect criteria)
virtual

Define selection criteria.

Implements pool::IDbContainer.

◆ setOption()

virtual DbStatus pool::RootKeyContainer::setOption ( const DbOption opt)
virtual

Set options.

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

Reimplemented from pool::DbContainerImp.

◆ size()

virtual uint64_t pool::RootKeyContainer::size ( )
virtual

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 DbStatus pool::RootKeyContainer::transAct ( Transaction::Action  action)
virtual

Execute end of object modification requests during a transaction.

Parameters
refTr[IN] Transaction reference
Returns
DbStatus code indicating success or failure.
Execute transaction action

Reimplemented from pool::DbContainerImp.

◆ update() [1/3]

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/3]

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.

◆ update() [3/3]

virtual DbStatus pool::DbContainerImp::update ( DbSelect )
inlineoverridevirtualinherited

Perform UPDATE statement.

Implements pool::IDbContainer.

Definition at line 153 of file DbContainerImp.h.

153 { return Error; }

◆ 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 pool::DbContainerImp::useNextRecordId ( uint64_t  )
inlineoverridevirtualinherited

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

Implements pool::IDbContainer.

Reimplemented in pool::RootTreeIndexContainer, and pool::RNTupleContainer.

Definition at line 120 of file DbContainerImp.h.

120 {};

◆ writeObject()

virtual DbStatus pool::RootKeyContainer::writeObject ( ActionList::value_type &  )
protectedvirtual

Commit single entry to container.

Reimplemented from pool::DbContainerImp.

Member Data Documentation

◆ 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

DbDatabase pool::RootKeyContainer::m_dbH
private

Parent Database handle.

Definition at line 49 of file RootKeyContainer.h.

◆ m_dir

TDirectory* pool::RootKeyContainer::m_dir
private

Reference to the root tree object.

Definition at line 47 of file RootKeyContainer.h.

◆ m_ioBytes

int pool::RootKeyContainer::m_ioBytes
private

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

Definition at line 57 of file RootKeyContainer.h.

◆ m_ioHandler

RootKeyIOHandler* pool::RootKeyContainer::m_ioHandler
private

CINT IO handler to allow user overloads....

Definition at line 53 of file RootKeyContainer.h.

◆ m_name

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

Container name.

Definition at line 76 of file DbContainerImp.h.

◆ m_policy

int pool::RootKeyContainer::m_policy
private

Policy flag.

Definition at line 55 of file RootKeyContainer.h.

◆ m_rootDb

RootDatabase* pool::RootKeyContainer::m_rootDb
private

Root database file reference.

Definition at line 51 of file RootKeyContainer.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_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
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