1 #ifndef GAUDIKERNEL_IDATAMANAGERSVC_H 2 #define GAUDIKERNEL_IDATAMANAGERSVC_H 8 #include "boost/utility/string_ref.hpp" 50 virtual CLID rootCLID()
const = 0;
103 virtual StatusCode clearSubTree( boost::string_ref sub_path ) = 0;
129 template <typename F, typename = std::enable_if_t<!std::is_convertible<F, IDataStoreAgent*>::value>>
132 return traverseSubTree( sub_path, &agent );
150 template <typename F, typename = std::enable_if_t<!std::is_convertible<F, IDataStoreAgent*>::value>>
153 return traverseSubTree( pObject, &agent );
166 template <typename F, typename = std::enable_if_t<!std::is_convertible<F, IDataStoreAgent*>::value>>
169 return traverseTree( &agent );
206 return registerAddress( parentObj ? parentObj->
registry() :
nullptr, objectPath, pAddress );
225 virtual StatusCode unregisterAddress( boost::string_ref fullPath ) = 0;
235 return unregisterAddress( pParent ? pParent->
registry() :
nullptr, objPath );
248 #endif // GAUDIKERNEL_IDATAMANAGERSVC_H
StatusCode traverseTree(F &&f)
Analyse by traversing all data objects in the data store.
StatusCode registerAddress(DataObject *parentObj, boost::string_ref objectPath, IOpaqueAddress *pAddress)
Register object address with the data store.
StatusCode traverseSubTree(boost::string_ref sub_path, F &&f)
Analyse by traversing all data objects below the sub tree identified by its full path name...
StatusCode traverseSubTree(DataObject *pObject, F &&f)
Analyse by traversing all data objects below the sub tree identified by the object.
Data provider interface definition.
IRegistry * registry() const
Get pointer to Registry.
StatusCode unregisterAddress(DataObject *pParent, boost::string_ref objPath)
Unregister object address from the data store.
This class is used for returning status codes from appropriate routines.
#define DeclareInterfaceID(iface, major, minor)
Macro to declare the interface ID when using the new mechanism of extending and implementing interfac...
Base class to be used to extend an interface.
The IRegistry represents the entry door to the environment any data object residing in a transient da...
unsigned int CLID
Class ID definition.
Generic data agent interface.
Opaque address interface definition.
A DataObject is the base class of any identifiable object on any data store.
::details::GenericDataStoreAgent< F > makeDataStoreAgent(F &&f)