1 #ifndef GAUDIKERNEL_LINKMANAGER_H
2 #define GAUDIKERNEL_LINKMANAGER_H
8 #include "GaudiKernel/Kernel.h"
24 enum DirLinkType {
INVALID, VALID};
42 Link(
long id,
const std::string&
path,
const DataObject* pObject=0)
43 : m_path(path), m_id(id) {
47 Link() : m_path(
""), m_pObject(0), m_id(
INVALID) {
50 Link& operator=(
const Link&
link) {
51 setObject(link.m_pObject);
60 void set(
long id,
const std::string&
path,
const DataObject* pObject) {
67 return link.m_path == m_path;
78 const std::string&
path()
const {
108 return m_linkVector.size();
115 Link*
link(
const std::string&
path);
121 long removeLink(
const std::string& fullPath)
const;
127 #endif // GAUDIKERNEL_LINKMANAGER_H
LinkVector::const_iterator ConstLinkIterator
Data type: iterator over leaf links (CONST)
bool operator==(const GaudiUtils::Allocator< T1 > &, const GaudiUtils::Allocator< T2 > &)
long addLink(const std::string &path, const DataObject *pObject) const
Add link by object reference and path.
LinkVector m_linkVector
The vector containing all links which are non-tree like.
LinkVector::iterator LinkIterator
Data type: iterator over leaf links.
static void setInstantiator(LinkManager *(*newInstance)())
Assign new instantiator.
std::vector< Link * > LinkVector
void clearLinks()
Remove all possibly existing symbolic links.
Link * link(long id)
Retrieve symbolic link identified by ID.
static LinkManager * newInstance()
Static instantiation.
long removeLink(const DataObject *pObject) const
Remove link by object reference.
Opaque address interface definition.
LinkManager()
Standard Constructor.
A DataObject is the base class of any identifiable object on any data store.
A LinkManager is the object aggregated into a DataObject, which is responsible for the handling of no...
virtual ~LinkManager()
Standard Destructor.
long size() const
Retrieve number of link present.