2 #ifndef GAUDIKERNEL_REGISTRYENTRY_H
3 #define GAUDIKERNEL_REGISTRYENTRY_H
9 #include "GaudiKernel/Kernel.h"
10 #include "GaudiKernel/IRegistry.h"
11 #include <boost/utility/string_ref.hpp>
38 typedef std::vector<IRegistry*> Store;
40 friend class ::DataSvc;
42 typedef Store::const_iterator
Iterator;
45 unsigned long m_refCount;
49 std::string m_fullpath;
53 RegistryEntry* m_pParent;
69 void assemblePath(std::string& buffer)
const;
74 RegistryEntry* i_find ( boost::string_ref
path )
const;
76 RegistryEntry* i_find (
const DataObject* pObject )
const;
78 RegistryEntry* i_create ( std::string name );
80 long i_add ( RegistryEntry* entry );
82 void setParent(RegistryEntry* pParent);
85 m_pDataProviderSvc =
s;
88 virtual RegistryEntry* parentEntry() {
92 RegistryEntry* findLeaf(boost::string_ref
path)
const {
96 RegistryEntry* findLeaf(
const DataObject* key)
const {
109 RegistryEntry(std::string
path, RegistryEntry* parent = 0);
111 virtual ~RegistryEntry();
113 virtual unsigned long release();
115 virtual unsigned long addRef() {
119 const std::string& name()
const {
123 virtual const std::string& identifier()
const {
128 return m_pDataProviderSvc;
143 virtual bool isSoft()
const {
147 const Store& leaves()
const {
151 virtual int size()
const {
152 return m_store.size();
155 virtual bool isEmpty()
const {
156 return m_store.size() == 0;
159 virtual Iterator begin ()
const {
160 return m_store.begin();
163 virtual Iterator
end ()
const {
164 return m_store.end();
180 virtual long add(
const std::string& name,
182 bool is_soft =
false);
184 virtual long add(
const std::string& name,
186 bool is_soft =
false);
188 virtual long remove(
const std::string& name);
194 virtual long deleteElements();
199 #endif // GAUDIKERNEL_REGISTRYENTRY_H
Data provider interface definition.
The IRegistry represents the entry door to the environment any data object residing in a transient da...
Generic data agent interface.
boost::spirit::classic::position_iterator2< ForwardIterator > Iterator
Opaque address interface definition.
A DataObject is the base class of any identifiable object on any data store.