| The Gaudi Framework v28r2-patches (bc4ad17a)

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- Namespace List
- Namespace Members

Functions
Objects Namespace Reference

Namespace for basic object handling within container classes. More...

## Functions
bool | access (const ContainedObject *from, ContainedObject **to)
bool | access (const DataObject *from, DataObject **to)
template<class TO , class FROM >
TO * | reference (FROM *from)

## Detailed Description

Namespace for basic object handling within container classes.

## Function Documentation

bool Objects::access | ( | const ContainedObject * | from,
|  | ContainedObject ** | to
| ) |  |

Definition at line 53 of file KeyedObject.cpp.

54 {
55 *to = nullptr;
56 if ( from ) {
57 DataObject *tar = nullptr;
58 if ( access(from->parent(), &tar) ) {
59 ObjectContainerBase* cnt = dynamic_cast<ObjectContainerBase*>(tar);
60 if ( cnt ) {
61 *to = cnt->containedObject(from->index());
62 }
63 }
64 }
65 return *to != nullptr;
66 }
ContainedObject::index
virtual long index() const
Distance in the parent container.
Definition: ContainedObject.h:54
Objects::access
bool access(const DataObject *from, DataObject **to)
Definition: KeyedObject.cpp:26
ContainedObject::parent
const ObjectContainerBase * parent() const
Access to parent object.
Definition: ContainedObject.h:49
ObjectContainerBase::containedObject
virtual ContainedObject * containedObject(long dist) const =0
Pointer to an object of a given distance.
ObjectContainerBase
ObjectContainerBase is the base class for Gaudi container classes.
Definition: ObjectContainerBase.h:19
DataObject
A DataObject is the base class of any identifiable object on any data store.
Definition: DataObject.h:30

bool Objects::access | ( | const DataObject * | from,
|  | DataObject ** | to
| ) |  |

Definition at line 26 of file KeyedObject.cpp.

27 {
28 DataObject* src = const_cast<DataObject*>(from);
29 DataObject* tar = nullptr;
30 if ( src ) {
31 LinkManager* mgr = src->linkMgr();
32 if ( mgr ) {
33 LinkManager::Link* link = mgr->link(long(0));
34 if ( link ) {
35 tar = link->object();
36 if ( !tar ) {
37 IRegistry* reg = src->registry();
38 if ( reg ) {
39 IDataProviderSvc* ds = reg->dataSvc();
40 if ( ds && ds->retrieveObject(link->path(), tar).isSuccess() ) {
41 link->setObject(tar);
42 }
43 }
44 }
45 }
46 }
47 }
48 *to = tar;
49 return tar != nullptr;
50 }
LinkManager::Link::path
const std::string & path() const
Access to path of object.
Definition: LinkManager.h:69
IDataProviderSvc
Data provider interface definition.
Definition: IDataProviderSvc.h:45
DataObject::registry
IRegistry * registry() const
Get pointer to Registry.
Definition: DataObject.h:74
DataObject::linkMgr
LinkManager * linkMgr() const
Retrieve Link manager.
Definition: DataObject.h:78
LinkManager::Link::setObject
void setObject(const DataObject *pObject)
Update object pointer.
Definition: LinkManager.h:58
LinkManager::link
Link * link(long id)
Retrieve symbolic link identified by ID.
Definition: LinkManager.cpp:33
IRegistry::dataSvc
virtual IDataProviderSvc * dataSvc() const =0
Retrieve pointer to Transient Store.
IRegistry
The IRegistry represents the entry door to the environment any data object residing in a transient da...
Definition: IRegistry.h:22
LinkManager::Link::object
const DataObject * object() const
Const access to data object.
Definition: LinkManager.h:62
LinkManager::Link
Embedded class defining a symbolic link Note: No copy constructor; bitwise copy (done by the compiler...
Definition: LinkManager.h:31
DataObject
A DataObject is the base class of any identifiable object on any data store.
Definition: DataObject.h:30
LinkManager
A LinkManager is the object aggregated into a DataObject, which is responsible for the handling of no...
Definition: LinkManager.h:21
IDataProviderSvc::retrieveObject
virtual StatusCode retrieveObject(IRegistry *pDirectory, const std::string &path, DataObject *&pObject)=0
Retrieve object identified by its directory entry.
template<class TO , class FROM >

TO* Objects::reference | ( | FROM * | from | ) |

Definition at line 20 of file KeyedObject.cpp.

20 {
21 ContainedObject* to = nullptr;
22 return access(from, &to) ? dynamic_cast<TO*>(to) : nullptr;
23 }
Objects::access
bool access(const DataObject *from, DataObject **to)
Definition: KeyedObject.cpp:26
ContainedObject
All classes that their objects may be contained in an LHCb ObjectContainer (e.g.
Definition: ContainedObject.h:29