The Gaudi Framework
master (37c0b60a)
|
A small class used to access easily (and efficiently) data items residing in data stores. More...
#include </builds/gaudi/Gaudi/GaudiKernel/include/GaudiKernel/SmartDataStorePtr.h>
Public Member Functions | |
SmartDataStorePtr (IDataProviderSvc *pService, IRegistry *pRegistry, std::string path) | |
Standard constructor: Construct an SmartDataStorePtr instance which is able to connect to a DataObject instance which is identified by its directory entry. More... | |
SmartDataStorePtr (const SmartDataObjectPtr ©) | |
Copy constructor: Construct a copy of a SmartDataStorePtr instance. More... | |
virtual | ~SmartDataStorePtr ()=default |
Standard Destructor. More... | |
SmartDataStorePtr & | operator= (DataObject *pObj) |
Automatic conversion to data type. More... | |
SmartDataStorePtr & | operator= (const DataObject *pObj) |
Automatic conversion to data type. More... | |
SmartDataStorePtr & | operator= (const SmartDataObjectPtr ©) override |
unhides assignment operator of base class More... | |
TYPE * | ptr () |
Automatic conversion to data type. More... | |
TYPE * | operator-> () |
Dereference operator: the heart of the smart pointer. More... | |
TYPE & | operator* () |
Dereference operator: the heart of the smart pointer. More... | |
operator TYPE * () | |
Automatic conversion to data type. More... | |
operator TYPE & () | |
Automatic conversion to data type. More... | |
operator int () | |
operator int for statements like: if ( SmartDataStorePtr<XXX>(...) ) {} More... | |
bool | operator! () |
operator ! for statements like: if ( !SmartDataStorePtr<XXX>(...) ) {} More... | |
TYPE * | accessTypeSafeData () |
Internal type safe accessor to data. More... | |
Public Member Functions inherited from SmartDataObjectPtr | |
SmartDataObjectPtr (AccessFunction access, IDataProviderSvc *pService, IRegistry *pDir, std::string path) | |
Standard constructor: Construct an SmartDataObjectPtr instance. More... | |
SmartDataObjectPtr (const SmartDataObjectPtr &)=default | |
Copy constructor: Construct an copy of a SmartDataStorePtr instance. More... | |
virtual | ~SmartDataObjectPtr ()=default |
Standard Destructor. More... | |
operator IRegistry * () | |
Automatic conversion to data directory. More... | |
const std::string & | path () const |
Path name. More... | |
IRegistry * | directory () |
Access to data directory. More... | |
void | setService (IDataProviderSvc *svc) |
Assign data service. More... | |
IDataProviderSvc * | service () |
Retrieve data service. More... | |
const StatusCode & | getLastError () const |
Access to potential errors during data accesses. More... | |
DataObject * | accessData () |
Static Object retrieval method: must call specific function. More... | |
DataObject * | retrieveObject () |
Object retrieve method. More... | |
DataObject * | findObject () |
Object find method. More... | |
DataObject * | updateObject () |
Object update method. More... | |
Protected Attributes | |
TYPE * | m_pObject |
Pointer to data store object. More... | |
Protected Attributes inherited from SmartDataObjectPtr | |
IDataProviderSvc * | m_dataProvider = nullptr |
Pointer to contained object. More... | |
IRegistry * | m_pRegistry = nullptr |
Pointer to the data registry containing the object. More... | |
StatusCode | m_status = StatusCode::SUCCESS |
Keep track of the last error. More... | |
std::string | m_path |
Path to object. More... | |
AccessFunction | m_accessFunc = nullptr |
Data access function. More... | |
Additional Inherited Members | |
Public Types inherited from SmartDataObjectPtr | |
using | AccessFunction = DataObject *(*)(SmartDataObjectPtr *ptr) |
Static Public Member Functions inherited from SmartDataObjectPtr | |
static DataObject * | retrieve (SmartDataObjectPtr *ptr) |
Static Object retrieval method. More... | |
static DataObject * | find (SmartDataObjectPtr *ptr) |
Static Object find method. More... | |
static DataObject * | update (SmartDataObjectPtr *ptr) |
Static Object update method. More... | |
Protected Member Functions inherited from SmartDataObjectPtr | |
StatusCode | find (IRegistry *pDirectory, std::string_view path, DataObject *&refpObject) |
Find the specified object from the data store. More... | |
StatusCode | find (std::string_view fullPath, DataObject *&refpObject) |
Find the specified object from the data store. More... | |
StatusCode | retrieve (IRegistry *pDirectory, std::string_view path, DataObject *&refpObject) |
Retrieve the specified object from the data store. More... | |
StatusCode | retrieve (std::string_view fullPath, DataObject *&refpObject) |
Retrieve the specified object from the data store. More... | |
StatusCode | update (IRegistry *pDirectory) |
Update the specified object from the data store. More... | |
StatusCode | update (std::string_view fullPath) |
Update the specified object from the data store. More... | |
A small class used to access easily (and efficiently) data items residing in data stores.
The class constructors take several arguments neccessary to be passed to the data services in order to automatically load objects in case they are not yet loaded. This is achieved through a smart pointer mechanism i.e. by overloading the operator->() at dereferencing time the object will be requested from the store.
The SmartDataStorePtr is meant to be "short living". It only makes sense to keep an object instance within e.g. the scope of one method. "long living" instances do not make sense and in the contrary would be harmful, because the information passed during construction would be invalid and returned object pointers would actually point to hyperspace.
The intrinsic functionality, whether the object will be retrieved or loaded from the data store is defined by the LOADER::.
Base Class: SmartDataObjectPtr
Definition at line 55 of file SmartDataStorePtr.h.
|
inline |
Standard constructor: Construct an SmartDataStorePtr instance which is able to connect to a DataObject instance which is identified by its directory entry.
FASTEST ACCESS TO THE DATA STORE ***
pService | Pointer to the data service interface which should be used to load the object. |
pDirectory | Pointer to the data directory entry. |
Definition at line 65 of file SmartDataStorePtr.h.
|
inline |
Copy constructor: Construct a copy of a SmartDataStorePtr instance.
copy | Copy of Smart Pointer to object. |
Definition at line 70 of file SmartDataStorePtr.h.
|
virtualdefault |
Standard Destructor.
|
inline |
|
inline |
operator int for statements like: if ( SmartDataStorePtr<XXX>(...) ) {}
Definition at line 115 of file SmartDataStorePtr.h.
|
inline |
Automatic conversion to data type.
Definition at line 109 of file SmartDataStorePtr.h.
|
inline |
|
inline |
operator ! for statements like: if ( !SmartDataStorePtr<XXX>(...) ) {}
Definition at line 118 of file SmartDataStorePtr.h.
|
inline |
Dereference operator: the heart of the smart pointer.
Definition at line 100 of file SmartDataStorePtr.h.
|
inline |
Dereference operator: the heart of the smart pointer.
Definition at line 97 of file SmartDataStorePtr.h.
|
inline |
Automatic conversion to data type.
Definition at line 82 of file SmartDataStorePtr.h.
|
inlineoverridevirtual |
unhides assignment operator of base class
Reimplemented from SmartDataObjectPtr.
Definition at line 88 of file SmartDataStorePtr.h.
|
inline |
Automatic conversion to data type.
Definition at line 76 of file SmartDataStorePtr.h.
|
inline |
|
mutableprotected |
Pointer to data store object.
Definition at line 128 of file SmartDataStorePtr.h.