The Gaudi Framework
v30r3 (a5ef0a68)
|
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.