LinkManager::Link Class Referencefinal

Embedded class defining a symbolic link Note: No copy constructor; bitwise copy (done by the compiler) is just fine. More...

#include <GaudiKernel/LinkManager.h>

Collaboration diagram for LinkManager::Link:

Public Member Functions

 Link (long id, std::string path, DataObject *pObject=nullptr)
 Standard constructor. More...
 
 Link ()=default
 Standard constructor. More...
 
void set (long id, std::string path, DataObject *pObject)
 Update the link content. More...
 
bool operator== (const Link &link) const
 Equality operator: check paths only. More...
 
void setObject (const DataObject *pObject)
 Update object pointer. More...
 
const DataObjectobject () const
 Const access to data object. More...
 
DataObjectobject ()
 
const std::stringpath () const
 Access to path of object. More...
 
long ID () const
 Link identifier. More...
 
IOpaqueAddressaddress ()
 Access to the object's address. More...
 

Private Attributes

std::string m_path
 DataObject is a friend. More...
 
DataObjectm_pObject = nullptr
 Pointer to object behind the link. More...
 
long m_id = INVALID
 Link ID. More...
 

Detailed Description

Embedded class defining a symbolic link Note: No copy constructor; bitwise copy (done by the compiler) is just fine.

Definition at line 31 of file LinkManager.h.

Constructor & Destructor Documentation

LinkManager::Link::Link ( long  id,
std::string  path,
DataObject pObject = nullptr 
)
inline

Standard constructor.

Definition at line 42 of file LinkManager.h.

43  : m_path(std::move(path)), m_pObject(pObject), m_id(id) {
44  }
T move(T...args)
LinkManager::Link::Link ( )
default

Standard constructor.

Member Function Documentation

IOpaqueAddress * LinkManager::Link::address ( )

Access to the object's address.

Access to the object's address from the link.

Definition at line 14 of file LinkManager.cpp.

14  {
15  if ( m_pObject ) {
16  IRegistry* pReg = m_pObject->registry();
17  if ( pReg ) return pReg->address();
18  }
19  return nullptr;
20 }
IRegistry * registry() const
Get pointer to Registry.
Definition: DataObject.h:74
The IRegistry represents the entry door to the environment any data object residing in a transient da...
Definition: IRegistry.h:22
virtual IOpaqueAddress * address() const =0
Retrieve opaque storage address.
long LinkManager::Link::ID ( ) const
inline

Link identifier.

Definition at line 73 of file LinkManager.h.

73  {
74  return m_id;
75  }
const DataObject* LinkManager::Link::object ( ) const
inline

Const access to data object.

Definition at line 62 of file LinkManager.h.

62  {
63  return m_pObject;
64  }
DataObject* LinkManager::Link::object ( )
inline

Definition at line 65 of file LinkManager.h.

65  {
66  return m_pObject;
67  }
bool LinkManager::Link::operator== ( const Link link) const
inline

Equality operator: check paths only.

Definition at line 54 of file LinkManager.h.

54  {
55  return link.m_path == m_path;
56  }
const std::string& LinkManager::Link::path ( ) const
inline

Access to path of object.

Definition at line 69 of file LinkManager.h.

69  {
70  return m_path;
71  }
void LinkManager::Link::set ( long  id,
std::string  path,
DataObject pObject 
)
inline

Update the link content.

Definition at line 48 of file LinkManager.h.

48  {
49  setObject(pObject);
50  m_path = std::move(path);
51  m_id = id;
52  }
T move(T...args)
void LinkManager::Link::setObject ( const DataObject pObject)
inline

Update object pointer.

Definition at line 58 of file LinkManager.h.

58  {
59  m_pObject = const_cast<DataObject*>(pObject);
60  }
A DataObject is the base class of any identifiable object on any data store.
Definition: DataObject.h:30

Member Data Documentation

long LinkManager::Link::m_id = INVALID
private

Link ID.

Definition at line 39 of file LinkManager.h.

std::string LinkManager::Link::m_path
private

DataObject is a friend.

String containing path of symbolic link

Definition at line 35 of file LinkManager.h.

DataObject* LinkManager::Link::m_pObject = nullptr
private

Pointer to object behind the link.

Definition at line 37 of file LinkManager.h.


The documentation for this class was generated from the following files: