![]() |
ATLAS Offline Software
|
"Generic" Container implementation More...
#include <StorageSvc/DbContainerImp.h>
Classes | |
| struct | DbAction |
| List of actions to execute at commit. More... | |
Public Member Functions | |
| DbContainerImp (const std::string &name) | |
| virtual void | release () override |
| Release instance (Abstract interfaces do not expose destructor!) | |
| virtual uint64_t | size () override |
| Size of the container. | |
| virtual std::string | name () const override |
| Get container name. | |
| virtual uint64_t | nextRecordId () override |
| Number of next record in the container (=size if no delete is allowed) | |
| virtual void | useNextRecordId (uint64_t) override |
| Suggest next Record ID for tbe next object written - used only with synced indexes. | |
| virtual DbStatus | close () override |
| Close the container and deallocate resources. | |
| virtual DbStatus | getOption (DbOption &opt) override |
| Access options. | |
| virtual DbStatus | setOption (const DbOption &opt) override |
| Set options. | |
| virtual DbStatus | transAct (Transaction::Action) override |
| Execute Transaction Action. | |
| 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. | |
| virtual DbStatus | loadObject (void **ptr, ShapeH shape, Token::OID_t &oid)=0 |
| Find object by object identifier and load it into memory. | |
| virtual DbStatus | open (DbDatabase &dbH, const std::string &nam, const DbTypeInfo *info, DbAccessMode mode)=0 |
| Open the container. | |
| virtual DbStatus | checkAccess (DbDatabase &dbH, const std::string &nam) const =0 |
| Check if we can access the container for reading with the given type. | |
| 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< DbAction > | ActionList |
Protected Member Functions | |
| virtual | ~DbContainerImp () |
| Standard destructor. | |
| virtual DbStatus | writeObject (ActionList::value_type &) |
| Commit single entry to container. | |
| virtual DbStatus | commitTransaction () |
| Execute object modification requests during a transaction. | |
Protected Attributes | |
| std::string | m_name |
| Container name. | |
Private Member Functions | |
| void | initMessaging () const |
| Initialize our message level and MessageSvc. | |
Private Attributes | |
| 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) | |
"Generic" Container implementation
Description: Generic helper class to implement stuff common to all existing Database containers. The base implementations can allways be overwritten.
Definition at line 44 of file DbContainerImp.h.
|
protected |
Definition at line 63 of file DbContainerImp.h.
|
protectedvirtual |
Standard destructor.
|
explicit |
|
overridevirtual |
In place allocation of object location.
Implements pool::IDbContainer.
|
pure virtualinherited |
Check if we can access the container for reading with the given type.
Implemented in pool::RootKeyContainer, pool::RootTreeContainer, and RNTupleContainer.
|
overridevirtual |
Close the container and deallocate resources.
Implements pool::IDbContainer.
Reimplemented in pool::RootKeyContainer, pool::RootTreeContainer, and RNTupleContainer.
|
protectedvirtual |
Execute object modification requests during a transaction.
Access options.
| opt | [IN] Reference to option object. |
Implements pool::IDbContainer.
Reimplemented in pool::RootKeyContainer, pool::RootTreeContainer, and RNTupleContainer.
|
privateinherited |
Initialize our message level and MessageSvc.
This method should only be called once.
Definition at line 39 of file AthMessaging.cxx.
|
overridevirtual |
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.
|
pure virtual |
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 |
Implemented in pool::RootKeyContainer, pool::RootTreeContainer, pool::RootTreeIndexContainer, and RNTupleContainer.
|
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.
|
inlineoverridevirtual |
|
overridevirtual |
Fetch next object address to set token.
Implements pool::IDbContainer.
Reimplemented in pool::RootKeyContainer.
|
overridevirtual |
Number of next record in the container (=size if no delete is allowed)
Implements pool::IDbContainer.
Reimplemented in pool::RootKeyContainer, pool::RootTreeIndexContainer, and RNTupleContainer.
|
pure virtualinherited |
Open the container.
Implemented in pool::RootKeyContainer, pool::RootTreeContainer, pool::RootTreeIndexContainer, and RNTupleContainer.
|
inlineoverridevirtual |
Release instance (Abstract interfaces do not expose destructor!)
Implements pool::IDbContainer.
Definition at line 85 of file DbContainerImp.h.
|
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.
Set options.
| opt | [IN] Reference to option object. |
Implements pool::IDbContainer.
Reimplemented in pool::RootKeyContainer, pool::RootTreeContainer, and RNTupleContainer.
|
overridevirtual |
Size of the container.
Implements pool::IDbContainer.
Reimplemented in pool::RootKeyContainer, pool::RootTreeContainer, and RNTupleContainer.
|
overridevirtual |
|
overridevirtual |
Execute Transaction Action.
Implements pool::IDbContainer.
Reimplemented in pool::RootKeyContainer, pool::RootTreeContainer, and RNTupleContainer.
|
inlineoverridevirtual |
Suggest next Record ID for tbe next object written - used only with synced indexes.
Implements pool::IDbContainer.
Reimplemented in pool::RootTreeIndexContainer, and RNTupleContainer.
Definition at line 94 of file DbContainerImp.h.
|
inlineprotectedvirtual |
Commit single entry to container.
Reimplemented in pool::RootKeyContainer, pool::RootTreeContainer, pool::RootTreeIndexContainer, and RNTupleContainer.
Definition at line 77 of file DbContainerImp.h.
|
mutableprivateinherited |
Messaging initialized (initMessaging)
Definition at line 141 of file AthMessaging.h.
|
mutableprivateinherited |
|
mutableprivateinherited |
|
mutableprivateinherited |
MsgStream instance (a std::cout like with print-out levels)
Definition at line 132 of file AthMessaging.h.
|
protected |
Container name.
Definition at line 72 of file DbContainerImp.h.
|
privateinherited |
Message source name.
Definition at line 129 of file AthMessaging.h.
|
private |
Current size of the transaction stack.
Definition at line 69 of file DbContainerImp.h.
|
private |
Transaction fifo storage for writing.
Definition at line 67 of file DbContainerImp.h.