Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members  

RegistryEntry Class Reference

Definition of an entry in the transient data store. More...

#include <GaudiKernel/RegistryEntry.h>

Inheritance diagram for RegistryEntry:

IDataDirectory IContainer List of all members.

Public Methods

void assemblePath (std::string& buffer) const
 Recursive helper to assemble the full path name of the entry. More...

const IDataDirectoryi_find ( const IDataDirectory* pDirectory ) const
 Internal method to retrieve data directory. More...

const IDataDirectoryi_find ( const std::string& path ) const
 Internal method to retrieve data directory. More...

const RegistryEntry* i_findLeaf (const std::string& path) const
 Internal method to locate object entry. More...

const RegistryEntry* i_findLeaf (const DataObject* pObject) const
 Internal method to locate object entry. More...

RegistryEntry* i_add (const std::string& name)
 Internal method to add entries. More...

 RegistryEntry (const std::string& path, RegistryEntry* parent = 0)
 Standard Constructor. More...

virtual ~RegistryEntry ()
 Standard Destructor. More...

virtual unsigned long release ()
 Reference the object. More...

virtual unsigned long addRef ()
 Dereference the object. More...

const std::string& name () const
 Retrieve full path name of the entry. More...

void setStore (TransientStore* s)
 Set the transient data store. More...

virtual TransientStorestore ()
 Retrieve pointer to Transient Store. More...

virtual const TransientStorestore () const
 Retrieve pointer to Transient Store. More...

virtual DataObjectobject ()
 Retrive object behind the link. More...

virtual const DataObjectobject () const
 Retrive object behind the link. More...

virtual const CLIDclID () const
 Retrieve class information from link: needed to resolve the link properly when conversion is an issue. More...

virtual IOpaqueAddressaddress ()
 Retrieve opaque storage address. More...

virtual const IOpaqueAddressaddress () const
 Retrieve opaque storage address. More...

virtual IDataDirectoryparent ()
 Pointer to parent directory entry. More...

virtual const IDataDirectoryparent () const
 Pointer to parent directory entry. More...

virtual RegistryEntry* parentEntry ()
 Pointer to parent registry entry. More...

virtual bool isSoft () const
 Is the link soft or hard. More...

virtual int size () const
 Return the size of the container(=number of objects). More...

virtual bool isEmpty () const
 Simple check if the Container is empty. More...

virtual Iterator begin ()
 Return starting point for container iteration. More...

virtual ConstIterator begin () const
 Return starting point for container iteration. More...

virtual Iterator end ()
 Return end elemtn if the container. More...

virtual ConstIterator end () const
 Return end elemtn if the container. More...

virtual Iterator next ( Iterator iter )
virtual ConstIterator next ( ConstIterator iter ) const
virtual ConstIterator next ( Iterator iter ) const
virtual IDataDirectoryfind ( const IDataDirectory* obj )
 Try to find an object identified by its pointer. More...

virtual const IDataDirectoryfind ( const IDataDirectory* obj ) const
 Try to find an object identified by its pointer. More...

virtual IDataDirectoryfind ( const std::string& path )
 Try to find an object identified by its relative name to the directory. More...

virtual const IDataDirectoryfind ( const std::string& path ) const
 Try to find an object identified by its relative name to the directory. More...

RegistryEntry* findLeaf (const std::string& path)
 Find identified leaf in this registry node. More...

const RegistryEntry* findLeaf (const std::string& path) const
 Find identified leaf in this registry node. More...

RegistryEntry* findLeaf (const DataObject* key)
 Find identified leaf in this registry node. More...

const RegistryEntry* findLeaf (const DataObject* key) const
 Find identified leaf in this registry node. More...

void makeHard (DataObject* pObject)
 Initialize link as hard link. More...

void makeHard (IOpaqueAddress* pAddress)
 Initialize link as hard link. More...

void makeSoft (DataObject* pObject)
 Initialize link as soft link. More...

void makeSoft (IOpaqueAddress* pAddress)
 Initialize link as soft link. More...

virtual const std::string& location () const
 Name of the location this object resides in. More...

virtual const std::string& fullpath () const
 Name of the full path in the data store leading to this object. More...

void setAddress (IOpaqueAddress* pAddress)
 Set/Update Opaque address. More...

void setObject (DataObject* obj)
 Set/Update object address. More...

RegistryEntry* findParent (const std::string& path)
 Return parent object identified by path relative to current node. More...

RegistryEntry* findParent (DataObject* obj)
 Return parent object identified by pointer tp object. More...

virtual long add (const std::string& name, DataObject* pObject, bool is_soft = false)
 Add entry to data store. More...

virtual long add (const std::string& name, IOpaqueAddress* pAddress, bool is_soft = false)
 Add entry to data store. More...

virtual long remove (const std::string& name)
 Remove an entry from the store. More...

virtual long add (IDataDirectory* obj)
 Add object to the container. More...

virtual long remove (IDataDirectory* obj)
 Remove an object from the container. More...

virtual StatusCode traverseTree (IDataStoreAgent* pAgent, int level = 0)
 traverse data tree. More...

virtual long deleteElements ()
 Delete all contained elements. More...


Private Types

typedef std::vector<IDataDirectory*> Store
 Definition of datastore type. More...


Private Attributes

unsigned long m_refCount
 Reference counter. More...

bool m_isSoft
 Is the link soft or hard? More...

std::string m_fullpath
 String containing full path of the object (volatile). More...

std::string m_path
 Path name. More...

RegistryEntry* m_parent
 Pointer to parent. More...

IOpaqueAddressm_address
 Pointer to opaque address (load info). More...

DataObjectm_object
 Pointer to object. More...

TransientStorem_transientStore
 Pointer to hosting transient store. More...

Store m_store
 Store of leafs. More...


Detailed Description

Definition of an entry in the transient data store.

The RegistryEntry represents an entry of the transient data store. The object holds the recipe how to retrieve objects from the persistent world (member IOpaqueAddress) as well as the backward link to the parent entry and the leafs.

Author(s):
Markus Frank
Version:
1.0

Definition at line 32 of file RegistryEntry.h.


Member Typedef Documentation

typedef std::vector<IDataDirectory*> RegistryEntry::Store [private]
 

Definition of datastore type.

Definition at line 36 of file RegistryEntry.h.


Constructor & Destructor Documentation

RegistryEntry::RegistryEntry ( const std::string & path,
RegistryEntry * parent = 0 )
 

Standard Constructor.

Definition at line 34 of file RegistryEntry.cpp.

Referenced by i_add().

RegistryEntry::~RegistryEntry ( ) [virtual]
 

Standard Destructor.

Definition at line 55 of file RegistryEntry.cpp.


Member Function Documentation

long RegistryEntry::add ( IDataDirectory * obj ) [virtual]
 

Add object to the container.

Definition at line 185 of file RegistryEntry.cpp.

long RegistryEntry::add ( const std::string & name,
IOpaqueAddress * pAddress,
bool is_soft = false ) [virtual]
 

Add entry to data store.

Definition at line 211 of file RegistryEntry.cpp.

long RegistryEntry::add ( const std::string & name,
DataObject * pObject,
bool is_soft = false ) [virtual]
 

Add entry to data store.

Definition at line 200 of file RegistryEntry.cpp.

Referenced by add(), DataSvc::linkObject(), and DataSvc::registerObject().

unsigned long RegistryEntry::addRef ( ) [inline, virtual]
 

Dereference the object.

Reimplemented from IDataDirectory.

Definition at line 85 of file RegistryEntry.h.

Referenced by RegistryEntry().

const IOpaqueAddress * RegistryEntry::address ( ) const [inline, virtual]
 

Retrieve opaque storage address.

Reimplemented from IDataDirectory.

Definition at line 119 of file RegistryEntry.h.

IOpaqueAddress * RegistryEntry::address ( ) [inline, virtual]
 

Retrieve opaque storage address.

Reimplemented from IDataDirectory.

Definition at line 115 of file RegistryEntry.h.

Referenced by add(), DataSvc::loadObject(), and DataSvc::updateRegistryEntry().

void RegistryEntry::assemblePath ( std::string & buffer ) const
 

Recursive helper to assemble the full path name of the entry.

Definition at line 361 of file RegistryEntry.cpp.

ConstIterator RegistryEntry::begin ( ) const [inline, virtual]
 

Return starting point for container iteration.

Reimplemented from IContainer.

Definition at line 151 of file RegistryEntry.h.

Iterator RegistryEntry::begin ( ) [inline, virtual]
 

Return starting point for container iteration.

Reimplemented from IContainer.

Definition at line 147 of file RegistryEntry.h.

const CLID & RegistryEntry::clID ( ) const [virtual]
 

Retrieve class information from link: needed to resolve the link properly when conversion is an issue.

Reimplemented from IDataDirectory.

Definition at line 127 of file RegistryEntry.cpp.

long RegistryEntry::deleteElements ( ) [virtual]
 

Delete all contained elements.

Reimplemented from IContainer.

Definition at line 222 of file RegistryEntry.cpp.

Referenced by ~RegistryEntry().

ConstIterator RegistryEntry::end ( ) const [inline, virtual]
 

Return end elemtn if the container.

Reimplemented from IContainer.

Definition at line 159 of file RegistryEntry.h.

Iterator RegistryEntry::end ( ) [inline, virtual]
 

Return end elemtn if the container.

Reimplemented from IContainer.

Definition at line 155 of file RegistryEntry.h.

const IDataDirectory * RegistryEntry::find ( const std::string & path ) const [inline, virtual]
 

Try to find an object identified by its relative name to the directory.

Reimplemented from IDataDirectory.

Definition at line 189 of file RegistryEntry.h.

IDataDirectory * RegistryEntry::find ( const std::string & path ) [inline, virtual]
 

Try to find an object identified by its relative name to the directory.

Reimplemented from IDataDirectory.

Definition at line 184 of file RegistryEntry.h.

const IDataDirectory * RegistryEntry::find ( const IDataDirectory * obj ) const [inline, virtual]
 

Try to find an object identified by its pointer.

Reimplemented from IDataDirectory.

Definition at line 180 of file RegistryEntry.h.

IDataDirectory * RegistryEntry::find ( const IDataDirectory * obj ) [inline, virtual]
 

Try to find an object identified by its pointer.

Reimplemented from IDataDirectory.

Definition at line 175 of file RegistryEntry.h.

const RegistryEntry * RegistryEntry::findLeaf ( const DataObject * key ) const [inline]
 

Find identified leaf in this registry node.

Definition at line 207 of file RegistryEntry.h.

RegistryEntry * RegistryEntry::findLeaf ( const DataObject * key ) [inline]
 

Find identified leaf in this registry node.

Definition at line 202 of file RegistryEntry.h.

const RegistryEntry * RegistryEntry::findLeaf ( const std::string & path ) const [inline]
 

Find identified leaf in this registry node.

Definition at line 198 of file RegistryEntry.h.

RegistryEntry * RegistryEntry::findLeaf ( const std::string & path ) [inline]
 

Find identified leaf in this registry node.

Definition at line 193 of file RegistryEntry.h.

Referenced by DataSvc::findObject(), findParent(), DataSvc::retrieveEntry(), and DataSvc::unregisterObject().

RegistryEntry * RegistryEntry::findParent ( DataObject * pObject )
 

Return parent object identified by pointer tp object.

Definition at line 322 of file RegistryEntry.cpp.

RegistryEntry * RegistryEntry::findParent ( const std::string & path )
 

Return parent object identified by path relative to current node.

Definition at line 307 of file RegistryEntry.cpp.

const std::string & RegistryEntry::fullpath ( ) const [virtual]
 

Name of the full path in the data store leading to this object.

Reimplemented from IDataDirectory.

Definition at line 369 of file RegistryEntry.cpp.

RegistryEntry * RegistryEntry::i_add ( const std::string & name )
 

Internal method to add entries.

Definition at line 169 of file RegistryEntry.cpp.

Referenced by add().

const IDataDirectory * RegistryEntry::i_find ( const std::string & path ) const
 

Internal method to retrieve data directory.

Definition at line 238 of file RegistryEntry.cpp.

const IDataDirectory * RegistryEntry::i_find ( const IDataDirectory * obj ) const
 

Internal method to retrieve data directory.

Definition at line 232 of file RegistryEntry.cpp.

Referenced by find().

const RegistryEntry * RegistryEntry::i_findLeaf ( const DataObject * key ) const
 

Internal method to locate object entry.

Definition at line 285 of file RegistryEntry.cpp.

const RegistryEntry * RegistryEntry::i_findLeaf ( const std::string & path ) const
 

Internal method to locate object entry.

Definition at line 251 of file RegistryEntry.cpp.

Referenced by findLeaf(), and i_findLeaf().

bool RegistryEntry::isEmpty ( ) const [inline, virtual]
 

Simple check if the Container is empty.

Reimplemented from IContainer.

Definition at line 143 of file RegistryEntry.h.

Referenced by DataSvc::unregisterObject().

bool RegistryEntry::isSoft ( ) const [inline, virtual]
 

Is the link soft or hard.

Reimplemented from IDataDirectory.

Definition at line 135 of file RegistryEntry.h.

Referenced by add(), and DataSvc::updateRegistryEntry().

const std::string & RegistryEntry::location ( ) const [virtual]
 

Name of the location this object resides in.

Reimplemented from IDataDirectory.

Definition at line 355 of file RegistryEntry.cpp.

void RegistryEntry::makeHard ( IOpaqueAddress * pAddress )
 

Initialize link as hard link.

Definition at line 95 of file RegistryEntry.cpp.

void RegistryEntry::makeHard ( DataObject * pObject )
 

Initialize link as hard link.

Definition at line 83 of file RegistryEntry.cpp.

Referenced by add().

void RegistryEntry::makeSoft ( IOpaqueAddress * pAddress )
 

Initialize link as soft link.

Definition at line 77 of file RegistryEntry.cpp.

void RegistryEntry::makeSoft ( DataObject * pObject )
 

Initialize link as soft link.

Definition at line 68 of file RegistryEntry.cpp.

Referenced by add(), and makeHard().

const std::string & RegistryEntry::name ( ) const [inline, virtual]
 

Retrieve full path name of the entry.

Reimplemented from IDataDirectory.

Definition at line 89 of file RegistryEntry.h.

ConstIterator RegistryEntry::next ( Iterator iter ) const [inline, virtual]
 

Reimplemented from IContainer.

Definition at line 171 of file RegistryEntry.h.

ConstIterator RegistryEntry::next ( ConstIterator iter ) const [inline, virtual]
 

Definition at line 167 of file RegistryEntry.h.

Iterator RegistryEntry::next ( Iterator iter ) [inline, virtual]
 

Reimplemented from IContainer.

Definition at line 163 of file RegistryEntry.h.

const DataObject * RegistryEntry::object ( ) const [inline, virtual]
 

Retrive object behind the link.

Reimplemented from IDataDirectory.

Definition at line 109 of file RegistryEntry.h.

DataObject * RegistryEntry::object ( ) [inline, virtual]
 

Retrive object behind the link.

Reimplemented from IDataDirectory.

Definition at line 105 of file RegistryEntry.h.

Referenced by DataSvc::findObject(), DataSvc::registerObject(), DataSvc::retrieveEntry(), DataSvc::retrieveObject(), DataSvc::unregisterObject(), and DataSvc::updateObject().

const IDataDirectory * RegistryEntry::parent ( ) const [inline, virtual]
 

Pointer to parent directory entry.

Reimplemented from IDataDirectory.

Definition at line 127 of file RegistryEntry.h.

IDataDirectory * RegistryEntry::parent ( ) [inline, virtual]
 

Pointer to parent directory entry.

Reimplemented from IDataDirectory.

Definition at line 123 of file RegistryEntry.h.

RegistryEntry * RegistryEntry::parentEntry ( ) [inline, virtual]
 

Pointer to parent registry entry.

Definition at line 131 of file RegistryEntry.h.

Referenced by DataSvc::clearSubTree(), and findParent().

unsigned long RegistryEntry::release ( ) [virtual]
 

Reference the object.

Reimplemented from IDataDirectory.

Definition at line 118 of file RegistryEntry.cpp.

Referenced by remove().

long RegistryEntry::remove ( IDataDirectory * obj ) [virtual]
 

Remove an object from the container.

Definition at line 137 of file RegistryEntry.cpp.

long RegistryEntry::remove ( const std::string & name ) [virtual]
 

Remove an entry from the store.

Definition at line 151 of file RegistryEntry.cpp.

Referenced by DataSvc::clearSubTree(), DataSvc::unlinkObject(), and DataSvc::unregisterObject().

void RegistryEntry::setAddress ( IOpaqueAddress * pAddress )
 

Set/Update Opaque address.

Definition at line 104 of file RegistryEntry.cpp.

Referenced by makeSoft(), and DataSvc::updateRegistryEntry().

void RegistryEntry::setObject ( DataObject * pObject )
 

Set/Update object address.

Definition at line 111 of file RegistryEntry.cpp.

Referenced by DataSvc::loadObject(), makeSoft(), and DataSvc::updateRegistryEntry().

void RegistryEntry::setStore ( TransientStore * s ) [inline]
 

Set the transient data store.

Definition at line 93 of file RegistryEntry.h.

Referenced by add(), and TransientStore::operator=().

int RegistryEntry::size ( ) const [inline, virtual]
 

Return the size of the container(=number of objects).

Reimplemented from IContainer.

Definition at line 139 of file RegistryEntry.h.

const TransientStore * RegistryEntry::store ( ) const [inline, virtual]
 

Retrieve pointer to Transient Store.

Reimplemented from IDataDirectory.

Definition at line 101 of file RegistryEntry.h.

TransientStore * RegistryEntry::store ( ) [inline, virtual]
 

Retrieve pointer to Transient Store.

Reimplemented from IDataDirectory.

Definition at line 97 of file RegistryEntry.h.

StatusCode RegistryEntry::traverseTree ( IDataStoreAgent * pAgent,
int level = 0 ) [virtual]
 

traverse data tree.

Definition at line 337 of file RegistryEntry.cpp.

Referenced by DataSvc::traverseSubTree().


Member Data Documentation

IOpaqueAddress * RegistryEntry::m_address [private]
 

Pointer to opaque address (load info).

Definition at line 50 of file RegistryEntry.h.

std::string RegistryEntry::m_fullpath [private]
 

String containing full path of the object (volatile).

Definition at line 44 of file RegistryEntry.h.

bool RegistryEntry::m_isSoft [private]
 

Is the link soft or hard?

Definition at line 42 of file RegistryEntry.h.

DataObject * RegistryEntry::m_object [private]
 

Pointer to object.

Definition at line 52 of file RegistryEntry.h.

RegistryEntry * RegistryEntry::m_parent [private]
 

Pointer to parent.

Definition at line 48 of file RegistryEntry.h.

std::string RegistryEntry::m_path [private]
 

Path name.

Definition at line 46 of file RegistryEntry.h.

unsigned long RegistryEntry::m_refCount [private]
 

Reference counter.

Definition at line 40 of file RegistryEntry.h.

Store RegistryEntry::m_store [private]
 

Store of leafs.

Definition at line 56 of file RegistryEntry.h.

TransientStore * RegistryEntry::m_transientStore [private]
 

Pointer to hosting transient store.

Definition at line 54 of file RegistryEntry.h.


The documentation for this class was generated from the following files:
Generated at Wed Nov 21 12:22:15 2001 by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000