|  | The Gaudi Framework
    v29r0 (ff2e7097)
    | 
A LinkManager is the object aggregated into a DataObject, which is responsible for the handling of non-tree like links. More...
#include <GaudiKernel/LinkManager.h>

| Classes | |
| class | Link | 
| Embedded class defining a symbolic link Note: No copy constructor; bitwise copy (done by the compiler) is just fine.  More... | |
| Public Types | |
| enum | DirLinkType { INVALID, VALID } | 
| Directory link types.  More... | |
| Public Member Functions | |
| LinkManager ()=default | |
| Standard Constructor.  More... | |
| virtual | ~LinkManager () | 
| Standard Destructor.  More... | |
| long | size () const | 
| Retrieve number of link present.  More... | |
| bool | empty () const | 
| Link * | link (long id) | 
| Retrieve symbolic link identified by ID.  More... | |
| Link * | link (const DataObject *pObject) | 
| Retrieve symbolic link identified by object.  More... | |
| Link * | link (const std::string &path) | 
| Retrieve symbolic link identified by path.  More... | |
| long | addLink (const std::string &path, const DataObject *pObject) const | 
| Add link by object reference and path.  More... | |
| long | removeLink (const DataObject *pObject) const | 
| Remove link by object reference.  More... | |
| long | removeLink (const std::string &fullPath) const | 
| Remove link by object reference.  More... | |
| long | removeLink (long id) const | 
| Remove link by link ID.  More... | |
| void | clearLinks () | 
| Remove all possibly existing symbolic links.  More... | |
| Static Public Member Functions | |
| static LinkManager * | newInstance () | 
| Static instantiation.  More... | |
| static void | setInstantiator (LinkManager *(*newInstance)()) | 
| Assign new instantiator.  More... | |
| Private Attributes | |
| std::vector< Link * > | m_linkVector | 
| @ TODO: replace by std::vector<std::unique_ptr<Link>> once ROOT does 'automatic' schema conversion from T* to std::unique_ptr<T>...  More... | |
| Friends | |
| class | MergeEventAlg | 
| @ TODO: provide interface to let MergeEvntAlg do its thing  More... | |
A LinkManager is the object aggregated into a DataObject, which is responsible for the handling of non-tree like links.
Definition at line 21 of file LinkManager.h.
Directory link types.
| Enumerator | |
|---|---|
| INVALID | |
| VALID | |
Definition at line 26 of file LinkManager.h.
| 
 | default | 
Standard Constructor.
| 
 | virtual | 
Standard Destructor.
destructor
Definition at line 9 of file LinkManager.cpp.
| long LinkManager::addLink | ( | const std::string & | path, | 
| const DataObject * | pObject | ||
| ) | const | 
Add link by object reference and path.
Add link by object reference and path string.
Definition at line 59 of file LinkManager.cpp.
| void LinkManager::clearLinks | ( | ) | 
Remove all possibly existing symbolic links.
Definition at line 118 of file LinkManager.cpp.
| 
 | inline | 
Definition at line 106 of file LinkManager.h.
| LinkManager::Link * LinkManager::link | ( | long | id | ) | 
Retrieve symbolic link identified by ID.
Definition at line 31 of file LinkManager.cpp.
| LinkManager::Link * LinkManager::link | ( | const DataObject * | pObject | ) | 
Retrieve symbolic link identified by object.
Retrieve symbolic link identified by Object pointer.
Definition at line 37 of file LinkManager.cpp.
| LinkManager::Link * LinkManager::link | ( | const std::string & | path | ) | 
Retrieve symbolic link identified by path.
Retrieve symbolic link identified by Object path.
Definition at line 48 of file LinkManager.cpp.
| 
 | static | 
| long LinkManager::removeLink | ( | const DataObject * | pObject | ) | const | 
Remove link by object reference.
Definition at line 79 of file LinkManager.cpp.
| long LinkManager::removeLink | ( | const std::string & | fullPath | ) | const | 
Remove link by object reference.
Definition at line 94 of file LinkManager.cpp.
| long LinkManager::removeLink | ( | long | id | ) | const | 
Remove link by link ID.
Definition at line 109 of file LinkManager.cpp.
| 
 | static | 
Assign new instantiator.
Definition at line 25 of file LinkManager.cpp.
| 
 | inline | 
Retrieve number of link present.
Definition at line 105 of file LinkManager.h.
| 
 | friend | 
@ TODO: provide interface to let MergeEvntAlg do its thing
Definition at line 84 of file LinkManager.h.
| 
 | mutableprivate | 
@ TODO: replace by std::vector<std::unique_ptr<Link>> once ROOT does 'automatic' schema conversion from T* to std::unique_ptr<T>...
Or, even better, just std::vector<Link>, given that Link is barely larger than a pointer (40 vs. 8 bytes) – but that requires more invasive schema evolution.
The vector containing all links which are non-tree like
Definition at line 93 of file LinkManager.h.