![]() |
ATLAS Offline Software
|
Description: Spezialization of RootTreeContainer ROOT specific implementation of Database container. More...
#include <src/RootTreeIndexContainer.h>
Public Member Functions | |
| RootTreeIndexContainer (const std::string &name) | |
| RootTreeIndexContainer (const RootTreeIndexContainer &)=delete | |
| RootTreeIndexContainer & | operator= (const RootTreeIndexContainer &)=delete |
| virtual | ~RootTreeIndexContainer () override |
| virtual DbStatus | open (DbDatabase &, const std::string &, const DbTypeInfo *, DbAccessMode) override final |
| Open the container. | |
| virtual uint64_t | nextRecordId () override final |
| Number of entries within the container. | |
| virtual void | useNextRecordId (uint64_t) override final |
| Suggest next Record ID for tbe next object written - for synced indexes. | |
| virtual DbStatus | loadObject (void **ptr, ShapeH shape, Token::OID_t &oid) override |
| Find object by object identifier and load it into memory. | |
| virtual DbStatus | writeObject (ActionList::value_type &) override |
| Commit single entry to container. | |
| virtual DbStatus | close () override |
| Close the container and deallocate resources. | |
| virtual DbStatus | checkAccess (DbDatabase &dbH, const std::string &nam) const override final |
| Check if we can access the container for reading with the given type. | |
| virtual DbStatus | getOption (DbOption &opt) override |
| Access options. | |
| virtual DbStatus | setOption (const DbOption &opt) override |
| Set options. | |
| virtual uint64_t | size () override |
| Number of entries within the container. | |
| TTree * | getTTree () |
| return the TTree in which this container is stored | |
| const std::string & | getName () const |
| return the name of the container | |
| bool | isBranchContainer () const |
| is this a container in a TBranch? (regular ones take the whole TTree) | |
| void | setTreeFillMode (bool mode) |
| set Tree Filling mode (true/false) for branch containers | |
| bool | usingTreeFillMode () const |
| return true if this branch container is using TTree Filling mode | |
| bool | isDirty () const |
| return true if this branch container was updated and it's TTree needs to be Filled | |
| void | clearDirty () |
| clear the dirty status (used after containing TTree was Filled) | |
| virtual DbStatus | transAct (Transaction::Action action) override |
| Execute Transaction action. | |
| virtual void | release () override |
| Release instance (Abstract interfaces do not expose destructor!) | |
| virtual std::string | name () const override |
| Get container name. | |
| virtual DbStatus | store (const void *object, DbContainer &cntH, ShapeH shape) override |
| Store object in location. | |
| virtual DbStatus | allocate (DbContainer &cntH, const void *object, ShapeH shape, Token::OID_t &oid) override |
| In place allocation of object location. | |
| virtual DbStatus | next (Token::OID_t &linkH) override |
| Fetch next object address to set token. | |
| 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. | |
| bool | msgLvl (const MSG::Level lvl) const |
| Test the output level. | |
| MsgStream & | msg () const |
| The standard message stream. | |
| MsgStream & | msg (const MSG::Level lvl) const |
| The standard message stream. | |
| void | setLevel (MSG::Level lvl) |
| Change the current logging level. | |
Protected Types | |
| typedef std::vector< BranchDesc > | Branches |
| Definition of the branch container. | |
| typedef std::vector< DbAction > | ActionList |
Protected Member Functions | |
| virtual DbStatus | commitTransaction () |
| Execute object modification requests during a transaction. | |
Protected Attributes | |
| TTree * | m_tree |
| Reference to the root tree object. | |
| const DbTypeInfo * | m_type |
| reference to exact type description | |
| Branches | m_branches |
| Branch map. | |
| DbDatabase | m_dbH |
| Parent Database handle. | |
| RootDatabase * | m_rootDb |
| Root database file reference. | |
| std::string | m_branchName |
| Branch name, if branch is specified by user. | |
| int | m_ioBytes |
| Number of bytes written/read during last operation. Set to -1 if it failed. | |
| bool | m_treeFillMode |
| if True, branch container will not use Branch->Fill() but will be filled with its Tree by the database instance | |
| bool | m_isDirty |
| flag set when a branch container was updated (but the branch was not Filled) | |
| std::unique_ptr< RootAuxDynIO::IFactoryTool > | m_auxDynTool |
| Factory object from AuxDynIO plugin that creates AuxDyn readers and writers. | |
| std::string | m_name |
| Container name. | |
Private Member Functions | |
| DbStatus | addBranch (const DbColumn *col, BranchDesc &dsc, const std::string &desc) |
| Add item branch. | |
| DbStatus | addObject (DbDatabase &dbH, const DbColumn *col, BranchDesc &dsc, const std::string &desc, int splitLevel, int bufferSize, int branchOffsetTabLen) |
| Add BLOB. | |
| DbStatus | finishTransAct () |
| TBranch * | branch (const std::string &nam) const |
| Access branch by name. | |
| void | setBranchOffsetTabLen (TBranch *b, int offsettab_len) |
| Recursively set Offset Table length for a branch and it's subbranches. | |
| void | initMessaging () const |
| Initialize our message level and MessageSvc. | |
Private Attributes | |
| TBranch * | m_indexBranch |
| Pointer to index branch. | |
| uint64_t | m_index_entries |
| const uint32_t | m_index_multi |
| Index multiplier (e.g. pid - ppid), fill in c'tor. | |
| Long64_t | m_index |
| Index (64 bit) - using ROOT type that matches the earlier 'long long'. | |
| int64_t | m_indexBump |
| How much to increase nextRecordID to keep index values synced with other containers. | |
| bool | m_firstRead |
| first object retrieval attempt flag (to rebuild index) | |
| ActionList | m_writeStack |
| Transaction fifo storage for writing. | |
| size_t | m_size |
| Current size of the transaction stack. | |
| std::string | m_nm |
| Message source name. | |
| boost::thread_specific_ptr< MsgStream > | m_msg_tls |
| MsgStream instance (a std::cout like with print-out levels) | |
| std::atomic< IMessageSvc * > | m_imsg { nullptr } |
| MessageSvc pointer. | |
| std::atomic< MSG::Level > | m_lvl { MSG::NIL } |
| Current logging level. | |
| std::atomic_flag m_initialized | ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT |
| Messaging initialized (initMessaging) | |
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 93 of file RootTreeContainer.h.
|
explicit |
|
delete |
|
inlineoverridevirtual |
Definition at line 39 of file RootTreeIndexContainer.h.
|
privateinherited |
Add item branch.
|
privateinherited |
Add BLOB.
|
overridevirtualinherited |
In place allocation of object location.
Implements pool::IDbContainer.
|
privateinherited |
Access branch by name.
|
finaloverridevirtualinherited |
Check if we can access the container for reading with the given type.
Implements pool::IDbContainer.
|
inlineinherited |
clear the dirty status (used after containing TTree was Filled)
Definition at line 195 of file RootTreeContainer.h.
|
overridevirtualinherited |
Close the container and deallocate resources.
Reimplemented from pool::DbContainerImp.
|
protectedvirtualinherited |
Execute object modification requests during a transaction.
|
privateinherited |
|
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 177 of file RootTreeContainer.h.
|
privateinherited |
Initialize our message level and MessageSvc.
This method should only be called once.
Definition at line 39 of file AthMessaging.cxx.
|
inlineinherited |
is this a container in a TBranch? (regular ones take the whole TTree)
Definition at line 183 of file RootTreeContainer.h.
|
inlineinherited |
return true if this branch container was updated and it's TTree needs to be Filled
Definition at line 192 of file RootTreeContainer.h.
|
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.
|
inlineinherited |
The standard message stream.
Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.
Definition at line 163 of file AthMessaging.h.
|
inlineinherited |
The standard message stream.
Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.
Definition at line 178 of file AthMessaging.h.
|
inlineinherited |
Test the output level.
| lvl | The message level to test against |
| true | Messages at level "lvl" will be printed |
Definition at line 151 of file AthMessaging.h.
|
inlineoverridevirtualinherited |
|
overridevirtualinherited |
Fetch next object address to set token.
Implements pool::IDbContainer.
Reimplemented in pool::RootKeyContainer.
|
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 85 of file DbContainerImp.h.
|
privateinherited |
Recursively set Offset Table length for a branch and it's subbranches.
|
inherited |
Change the current logging level.
Use this rather than msg().setLevel() for proper operation with MT.
Definition at line 28 of file AthMessaging.cxx.
|
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.
|
overridevirtualinherited |
|
overridevirtualinherited |
Execute Transaction action.
Reimplemented from pool::DbContainerImp.
|
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 189 of file RootTreeContainer.h.
|
overridevirtual |
Commit single entry to container.
Reimplemented from pool::RootTreeContainer.
|
mutableprivateinherited |
Messaging initialized (initMessaging)
Definition at line 141 of file AthMessaging.h.
|
protectedinherited |
Factory object from AuxDynIO plugin that creates AuxDyn readers and writers.
Definition at line 115 of file RootTreeContainer.h.
|
protectedinherited |
Branch map.
Definition at line 100 of file RootTreeContainer.h.
|
protectedinherited |
Branch name, if branch is specified by user.
Definition at line 106 of file RootTreeContainer.h.
|
protectedinherited |
Parent Database handle.
Definition at line 102 of file RootTreeContainer.h.
|
private |
first object retrieval attempt flag (to rebuild index)
Definition at line 79 of file RootTreeIndexContainer.h.
|
mutableprivateinherited |
|
private |
Index (64 bit) - using ROOT type that matches the earlier 'long long'.
Definition at line 73 of file RootTreeIndexContainer.h.
|
private |
Definition at line 67 of file RootTreeIndexContainer.h.
|
private |
Index multiplier (e.g. pid - ppid), fill in c'tor.
Definition at line 70 of file RootTreeIndexContainer.h.
|
private |
Pointer to index branch.
Definition at line 65 of file RootTreeIndexContainer.h.
|
private |
How much to increase nextRecordID to keep index values synced with other containers.
Definition at line 76 of file RootTreeIndexContainer.h.
|
protectedinherited |
Number of bytes written/read during last operation. Set to -1 if it failed.
Definition at line 108 of file RootTreeContainer.h.
|
protectedinherited |
flag set when a branch container was updated (but the branch was not Filled)
Definition at line 112 of file RootTreeContainer.h.
|
mutableprivateinherited |
|
mutableprivateinherited |
MsgStream instance (a std::cout like with print-out levels)
Definition at line 132 of file AthMessaging.h.
|
protectedinherited |
Container name.
Definition at line 72 of file DbContainerImp.h.
|
privateinherited |
Message source name.
Definition at line 129 of file AthMessaging.h.
|
protectedinherited |
Root database file reference.
Definition at line 104 of file RootTreeContainer.h.
|
privateinherited |
Current size of the transaction stack.
Definition at line 69 of file DbContainerImp.h.
|
protectedinherited |
Reference to the root tree object.
Definition at line 96 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 110 of file RootTreeContainer.h.
|
protectedinherited |
reference to exact type description
Definition at line 98 of file RootTreeContainer.h.
|
privateinherited |
Transaction fifo storage for writing.
Definition at line 67 of file DbContainerImp.h.