ATLAS Offline Software
|
#include <StorageSvc/DbContainerImp.h>
Classes | |
struct | DbAction |
List of actions to execute at commit. More... | |
Public Member Functions | |
DbContainerImp () | |
virtual void | release () override |
Release instance (Abstract interfaces do not expose destructor!) More... | |
virtual uint64_t | size () override |
Size of the container. More... | |
virtual std::string | name () const override |
Get container name. More... | |
virtual uint64_t | nextRecordId () override |
Number of next record in the container (=size if no delete is allowed) More... | |
virtual void | useNextRecordId (uint64_t) override |
Suggest next Record ID for tbe next object written - used only with synced indexes. 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 | transAct (Transaction::Action) override |
Execute Transaction Action. 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 | destroy (DbSelect &) override |
Perform DELETE statement. More... | |
virtual DbStatus | fetch (DbSelect &sel) override |
Fetch next object address of the selection to set token. 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 (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... | |
virtual DbStatus | fetch (const Token::OID_t &linkH, Token::OID_t &stmt) |
Fetch refined object address. Default implementation returns identity. More... | |
virtual DbStatus | loadObject (void **ptr, ShapeH shape, Token::OID_t &oid)=0 |
Find object by object identifier and load it into memory. More... | |
virtual DbStatus | isShapeSupported (const DbTypeInfo *typ) const =0 |
Ask if a given shape is supported. More... | |
virtual DbStatus | open (DbDatabase &dbH, const std::string &nam, const DbTypeInfo *info, DbAccessMode mode)=0 |
Open the container. More... | |
virtual DbStatus | select (DbSelect &criteria)=0 |
Define selection criteria. More... | |
Protected Types | |
typedef std::vector< DbAction > | ActionList |
Protected Member Functions | |
virtual | ~DbContainerImp () |
Standard destructor. 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 | 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 | writeObject (ActionList::value_type &) |
Commit single entry to 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 | |
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... | |
"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 43 of file DbContainerImp.h.
|
protected |
Definition at line 63 of file DbContainerImp.h.
|
protectedvirtual |
Standard destructor.
pool::DbContainerImp::DbContainerImp | ( | ) |
|
overridevirtual |
In place allocation of object location.
Implements pool::IDbContainer.
|
overridevirtual |
In place allocation of raw memory for the transient object.
Implements pool::IDbContainer.
|
virtual |
Clear Transaction stack containing transaction requests.
|
overridevirtual |
Close the container and deallocate resources.
Implements pool::IDbContainer.
Reimplemented in pool::RNTupleContainer, pool::RootTreeContainer, and pool::RootKeyContainer.
|
protectedvirtual |
Execute object modification requests during a transaction.
|
overridevirtual |
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.
|
inlineprotectedvirtual |
Destroy persistent object in the container; does not touch transient!
Reimplemented in pool::RootKeyContainer.
Definition at line 97 of file DbContainerImp.h.
|
virtual |
Fetch refined object address. Default implementation returns identity.
Reimplemented in pool::RootTreeContainer, and pool::RootKeyContainer.
Fetch next object address of the selection to set token.
Implements pool::IDbContainer.
Reimplemented in pool::RNTupleContainer, pool::RootTreeContainer, and pool::RootKeyContainer.
|
overridevirtual |
In place deletion of raw memory.
Implements pool::IDbContainer.
Access options.
opt | [IN] Reference to option object. |
Implements pool::IDbContainer.
Reimplemented in pool::RNTupleContainer, pool::RootTreeContainer, and pool::RootKeyContainer.
|
pure virtualinherited |
Ask if a given shape is supported.
Implemented in pool::RNTupleContainer, pool::RootTreeContainer, and pool::RootKeyContainer.
|
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::RNTupleContainer, pool::RootTreeContainer, pool::RootTreeIndexContainer, and pool::RootKeyContainer.
|
inlineoverridevirtual |
|
overridevirtual |
Number of next record in the container (=size if no delete is allowed)
Implements pool::IDbContainer.
Reimplemented in pool::RNTupleContainer, pool::RootTreeIndexContainer, and pool::RootKeyContainer.
|
pure virtualinherited |
Open the container.
Implemented in pool::RNTupleContainer, pool::RootTreeContainer, pool::RootKeyContainer, and pool::RootTreeIndexContainer.
|
inlineoverridevirtual |
Release instance (Abstract interfaces do not expose destructor!)
Implements pool::IDbContainer.
Definition at line 111 of file DbContainerImp.h.
|
overridevirtual |
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.
|
overridevirtual |
Add single entry to container.
Implements pool::IDbContainer.
Define selection criteria.
Implemented in pool::RNTupleContainer, pool::RootTreeContainer, and pool::RootKeyContainer.
Set options.
opt | [IN] Reference to option object. |
Implements pool::IDbContainer.
Reimplemented in pool::RNTupleContainer, pool::RootTreeContainer, and pool::RootKeyContainer.
|
overridevirtual |
Size of the container.
Implements pool::IDbContainer.
Reimplemented in pool::RNTupleContainer, pool::RootTreeContainer, and pool::RootKeyContainer.
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
overridevirtual |
Execute Transaction Action.
Implements pool::IDbContainer.
Reimplemented in pool::RNTupleContainer, pool::RootTreeContainer, and pool::RootKeyContainer.
|
overridevirtual |
Update existing object in the container.
cntH | [IN] Valid handle to container |
object | [IN] Data object |
objH | [IN] Object handle |
Implements pool::IDbContainer.
|
overridevirtual |
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.
|
inlineprotectedvirtual |
|
inlineoverrideprotectedvirtual |
Query the pending transaction stack.
Implements pool::IDbContainer.
Definition at line 91 of file DbContainerImp.h.
|
inlineoverridevirtual |
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.
|
inlineprotectedvirtual |
Commit single entry to container.
Reimplemented in pool::RNTupleContainer, pool::RootTreeContainer, pool::RootTreeIndexContainer, and pool::RootKeyContainer.
Definition at line 103 of file DbContainerImp.h.
|
protected |
Flag to indicate if object removals are supported.
Definition at line 80 of file DbContainerImp.h.
|
protected |
Flag to indicate if object updates are supported.
Definition at line 78 of file DbContainerImp.h.
|
protected |
Container name.
Definition at line 76 of file DbContainerImp.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.
|
private |
Accumulated stack entry types.
Definition at line 73 of file DbContainerImp.h.
|
private |
Number of objects to be written out during open transaction.
Definition at line 71 of file DbContainerImp.h.