ATLAS Offline Software
|
#include <src/RootTreeIndexContainer.h>
Public Member Functions | |
RootTreeIndexContainer () | |
Standard constructor. More... | |
RootTreeIndexContainer (const RootTreeIndexContainer &)=delete | |
RootTreeIndexContainer & | operator= (const RootTreeIndexContainer &)=delete |
virtual | ~RootTreeIndexContainer () |
Standard destructor. More... | |
virtual DbStatus | open (DbDatabase &, const std::string &, const DbTypeInfo *, DbAccessMode) override final |
Open the container. More... | |
virtual uint64_t | nextRecordId () override final |
Number of entries within the container. More... | |
virtual void | useNextRecordId (uint64_t) override final |
Suggest next Record ID for tbe next object written - for synced indexes. More... | |
virtual DbStatus | loadObject (void **ptr, ShapeH shape, Token::OID_t &oid) override |
Find object by object identifier and load it into memory. More... | |
virtual DbStatus | writeObject (ActionList::value_type &) override |
Commit single entry to container. More... | |
virtual DbStatus | close () override |
Close the container and deallocate resources. More... | |
virtual DbStatus | getOption (DbOption &opt) override |
Access options. More... | |
virtual DbStatus | setOption (const DbOption &opt) override |
Set options. More... | |
virtual DbStatus | isShapeSupported (const DbTypeInfo *typ) const override |
Ask if a given shape is supported. More... | |
virtual DbStatus | select (DbSelect &criteria) override |
Define selection criteria. More... | |
virtual uint64_t | size () override |
Number of entries within the container. More... | |
TTree * | getTTree () |
return the TTree in which this container is stored More... | |
const std::string & | getName () const |
return the name of the container More... | |
bool | isBranchContainer () const |
is this a container in a TBranch? (regular ones take the whole TTree) More... | |
void | setTreeFillMode (bool mode) |
set Tree Filling mode (true/false) for branch containers More... | |
bool | usingTreeFillMode () const |
return true if this branch container is using TTree Filling mode 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 DbStatus | fetch (DbSelect &sel) override |
Fetch next object address of the selection to set token. More... | |
virtual DbStatus | fetch (const Token::OID_t &linkH, Token::OID_t &stmt) override |
Fetch refined object address. Default implementation returns identity. More... | |
virtual DbStatus | transAct (Transaction::Action action) override |
Execute Transaction action. 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 | 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 | 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< BranchDesc > | Branches |
Definition of the branch container. More... | |
typedef std::vector< DbAction > | ActionList |
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 | |
TTree * | m_tree |
Reference to the root tree object. More... | |
const DbTypeInfo * | m_type |
reference to exact type description More... | |
Branches | m_branches |
Branch map. More... | |
DbDatabase | m_dbH |
Parent Database handle. More... | |
RootDatabase * | m_rootDb |
Root database file reference. More... | |
std::string | m_branchName |
Branch name, if branch is specified by user. More... | |
int | m_ioBytes |
Number of bytes written/read during last operation. Set to -1 if it failed. More... | |
bool | m_treeFillMode |
if True, branch container will not use Branch->Fill() but will be filled with its Tree by the database instance More... | |
bool | m_isDirty |
flag set when a branch container was updated (but the branch was not Filled) More... | |
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 | |
DbStatus | addBranch (const DbColumn *col, BranchDesc &dsc, const std::string &desc) |
Add item branch. More... | |
DbStatus | addObject (DbDatabase &dbH, const DbColumn *col, BranchDesc &dsc, const std::string &desc, int splitLevel, int bufferSize, int branchOffsetTabLen) |
Add BLOB. More... | |
DbStatus | selectRow (const DataCallBack *call, const Token::OID_t &linkH, DbAccessMode mode) |
Find entry identified by his number (=primary key) in the Database. More... | |
DbStatus | finishTransAct () |
TBranch * | branch (const std::string &nam) const |
Access branch by name. More... | |
void | setBranchOffsetTabLen (TBranch *b, int offsettab_len) |
Recursively set Offset Table length for a branch and it's subbranches. More... | |
Private Attributes | |
TBranch * | m_indexBranch |
Pointer to index branch. More... | |
uint64_t | m_index_entries |
const uint32_t | m_index_multi |
Index multiplier (e.g. pid - ppid), fill in c'tor. More... | |
Long64_t | m_index |
Index (64 bit) - using ROOT type that matches the earlier 'long long'. More... | |
int64_t | m_indexBump |
How much to increase nextRecordID to keep index values synced with other containers. More... | |
bool | m_firstRead |
first object retrieval attempt flag (to rebuild index) 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... | |
Description: Spezialization of RootTreeContainer ROOT specific implementation of Database container. Since objects in root are stored in "trees with branches", this object corresponds to a tuple (Tree/Branch), where each object type (determined by the location of the transient object within the data store) is accessed by an index number stored inside its tree.
Definition at line 33 of file RootTreeIndexContainer.h.
|
protectedinherited |
Definition at line 63 of file DbContainerImp.h.
|
protectedinherited |
Definition of the branch container.
Definition at line 94 of file RootTreeContainer.h.
pool::RootTreeIndexContainer::RootTreeIndexContainer | ( | ) |
Standard constructor.
|
delete |
|
inlinevirtual |
|
privateinherited |
Add item branch.
|
privateinherited |
Add BLOB.
|
overridevirtualinherited |
In place allocation of object location.
Implements pool::IDbContainer.
|
overridevirtualinherited |
In place allocation of raw memory for the transient object.
Implements pool::IDbContainer.
|
privateinherited |
Access branch by name.
|
inlineinherited |
clear the dirty status (used after containing TTree was Filled)
Definition at line 203 of file RootTreeContainer.h.
|
virtualinherited |
Clear Transaction stack containing transaction requests.
|
overridevirtualinherited |
Close the container and deallocate resources.
Reimplemented from pool::DbContainerImp.
|
protectedvirtualinherited |
Execute object modification requests during a transaction.
|
overridevirtualinherited |
Add the specified object to the delete stack.
Implements pool::IDbContainer.
Perform DELETE statement.
Implements pool::IDbContainer.
Definition at line 155 of file DbContainerImp.h.
|
inlineprotectedvirtualinherited |
Destroy persistent object in the container; does not touch transient!
Reimplemented in pool::RootKeyContainer.
Definition at line 97 of file DbContainerImp.h.
|
overridevirtualinherited |
Fetch refined object address. Default implementation returns identity.
Reimplemented from pool::DbContainerImp.
Fetch next object address of the selection to set token.
Reimplemented from pool::DbContainerImp.
|
privateinherited |
|
overridevirtualinherited |
In place deletion of raw memory.
Implements pool::IDbContainer.
|
inlineinherited |
Access options.
opt | [IN] Reference to option object. |
Reimplemented from pool::DbContainerImp.
|
inlineinherited |
return the TTree in which this container is stored
Definition at line 185 of file RootTreeContainer.h.
|
inlineinherited |
is this a container in a TBranch? (regular ones take the whole TTree)
Definition at line 191 of file RootTreeContainer.h.
|
inlineinherited |
return true if this branch container was updated and it's TTree needs to be Filled
Definition at line 200 of file RootTreeContainer.h.
|
overridevirtualinherited |
Ask if a given shape is supported.
Implements pool::IDbContainer.
|
overridevirtualinherited |
Find object within the container and load it into memory.
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. |
Implements pool::IDbContainer.
Reimplemented in pool::RootKeyContainer.
|
overridevirtual |
Find object by object identifier and load it into memory.
ptr | [IN/OUT] ROOT-style address of the pointer to object |
shape | [IN] Object type |
oid | [OUT] Object OID |
Reimplemented from pool::RootTreeContainer.
|
inlineoverridevirtualinherited |
|
finaloverridevirtual |
Number of entries within the container.
Reimplemented from pool::DbContainerImp.
|
finaloverridevirtual |
Open the container.
Reimplemented from pool::RootTreeContainer.
|
delete |
|
inlineoverridevirtualinherited |
Release instance (Abstract interfaces do not expose destructor!)
Implements pool::IDbContainer.
Definition at line 111 of file DbContainerImp.h.
|
overridevirtualinherited |
Save new object in the container and return its handle.
cntH | [IN] Handle to container object. |
object | [IN] Data object |
linkH | [OUT] Internal OID to identify object. |
Implements pool::IDbContainer.
|
overridevirtualinherited |
Add single entry to container.
Implements pool::IDbContainer.
Define selection criteria.
Implements pool::IDbContainer.
|
privateinherited |
Find entry identified by his number (=primary key) in the Database.
|
privateinherited |
Recursively set Offset Table length for a branch and it's subbranches.
|
overridevirtualinherited |
Set options.
opt | [IN] Reference to option object. |
Reimplemented from pool::DbContainerImp.
|
inherited |
set Tree Filling mode (true/false) for branch containers
|
overridevirtualinherited |
Number of entries within the container.
Reimplemented from pool::DbContainerImp.
|
inlineprotectedinherited |
|
inlineprotectedinherited |
|
inlineprotectedinherited |
|
overridevirtualinherited |
Execute Transaction action.
Reimplemented from pool::DbContainerImp.
|
overridevirtualinherited |
Update existing object in the container.
cntH | [IN] Valid handle to container |
object | [IN] Data object |
objH | [IN] Object handle |
Implements pool::IDbContainer.
|
overridevirtualinherited |
Update existing object in the container.
cntH | [IN] Valid handle to container |
object | [IN] Data object |
linkH | [IN/OUT] Object identifier |
Implements pool::IDbContainer.
Perform UPDATE statement.
Implements pool::IDbContainer.
Definition at line 153 of file DbContainerImp.h.
|
inlineprotectedvirtualinherited |
|
inlineoverrideprotectedvirtualinherited |
Query the pending transaction stack.
Implements pool::IDbContainer.
Definition at line 91 of file DbContainerImp.h.
|
finaloverridevirtual |
Suggest next Record ID for tbe next object written - for synced indexes.
Reimplemented from pool::DbContainerImp.
|
inlineinherited |
return true if this branch container is using TTree Filling mode
Definition at line 197 of file RootTreeContainer.h.
|
overridevirtual |
Commit single entry to container.
Reimplemented from pool::RootTreeContainer.
|
protectedinherited |
Branch map.
Definition at line 101 of file RootTreeContainer.h.
|
protectedinherited |
Branch name, if branch is specified by user.
Definition at line 107 of file RootTreeContainer.h.
|
protectedinherited |
Flag to indicate if object removals are supported.
Definition at line 80 of file DbContainerImp.h.
|
protectedinherited |
Flag to indicate if object updates are supported.
Definition at line 78 of file DbContainerImp.h.
|
protectedinherited |
Parent Database handle.
Definition at line 103 of file RootTreeContainer.h.
|
private |
first object retrieval attempt flag (to rebuild index)
Definition at line 82 of file RootTreeIndexContainer.h.
|
private |
Index (64 bit) - using ROOT type that matches the earlier 'long long'.
Definition at line 76 of file RootTreeIndexContainer.h.
|
private |
Definition at line 70 of file RootTreeIndexContainer.h.
|
private |
Index multiplier (e.g. pid - ppid), fill in c'tor.
Definition at line 73 of file RootTreeIndexContainer.h.
|
private |
Pointer to index branch.
Definition at line 68 of file RootTreeIndexContainer.h.
|
private |
How much to increase nextRecordID to keep index values synced with other containers.
Definition at line 79 of file RootTreeIndexContainer.h.
|
protectedinherited |
Number of bytes written/read during last operation. Set to -1 if it failed.
Definition at line 109 of file RootTreeContainer.h.
|
protectedinherited |
flag set when a branch container was updated (but the branch was not Filled)
Definition at line 113 of file RootTreeContainer.h.
|
protectedinherited |
Container name.
Definition at line 76 of file DbContainerImp.h.
|
protectedinherited |
Root database file reference.
Definition at line 105 of file RootTreeContainer.h.
|
privateinherited |
Current size of the transaction stack.
Definition at line 69 of file DbContainerImp.h.
|
privateinherited |
Transaction fifo storage for writing.
Definition at line 67 of file DbContainerImp.h.
|
privateinherited |
Accumulated stack entry types.
Definition at line 73 of file DbContainerImp.h.
|
protectedinherited |
Reference to the root tree object.
Definition at line 97 of file RootTreeContainer.h.
|
protectedinherited |
if True, branch container will not use Branch->Fill() but will be filled with its Tree by the database instance
Definition at line 111 of file RootTreeContainer.h.
|
protectedinherited |
reference to exact type description
Definition at line 99 of file RootTreeContainer.h.
|
privateinherited |
Number of objects to be written out during open transaction.
Definition at line 71 of file DbContainerImp.h.