19 if ( pReg )
return pReg->
address();
41 if ( i->object() == pObject )
return i;
50 if ( 0 != path.
length() ) {
52 if ( i->path() ==
path )
return i;
64 if ( pO && pO == pObject )
return n;
65 if ( lnk->path() ==
path ) {
66 if ( pObject && pObject != pO ) {
67 lnk->setObject( const_cast<DataObject*>( pObject ) );
74 m_linkVector.emplace_back(
new Link( m_linkVector.size(),
path,
const_cast<DataObject*
>( pObject ) ) );
75 return m_linkVector.back()->ID();
83 if ( ( *i )->object() == pObject ) {
98 if ( ( *i )->path() ==
path ) {
121 m_linkVector.clear();
long addLink(const std::string &path, const DataObject *pObject) const
Add link by object reference and path.
static void setInstantiator(LinkManager *(*newInstance)())
Assign new instantiator.
IOpaqueAddress * address()
Access to the object's address.
std::vector< Link * > m_linkVector
@ TODO: replace by std::vector<std::unique_ptr<Link>> once ROOT does 'automatic' schema conversion fr...
void clearLinks()
Remove all possibly existing symbolic links.
Link * link(long id)
Retrieve symbolic link identified by ID.
static LinkManager * newInstance()
Static instantiation.
The IRegistry represents the entry door to the environment any data object residing in a transient da...
LinkManager()=default
Standard Constructor.
long removeLink(const DataObject *pObject) const
Remove link by object reference.
Embedded class defining a symbolic link Note: No copy constructor; bitwise copy (done by the compiler...
Opaque address interface definition.
virtual IOpaqueAddress * address() const =0
Retrieve opaque storage address.
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.