11 #ifndef GAUDIKERNEL_IDATAMANAGERSVC_H 12 #define GAUDIKERNEL_IDATAMANAGERSVC_H 19 #include <string_view> 60 virtual CLID rootCLID()
const = 0;
113 virtual StatusCode clearSubTree( std::string_view sub_path ) = 0;
139 template <
typename F,
typename = std::enable_if_t<!std::is_convertible_v<F, IDataStoreAgent*>>>
142 return traverseSubTree( sub_path, &agent );
160 template <
typename F,
typename = std::enable_if_t<!std::is_convertible_v<F, IDataStoreAgent*>>>
163 return traverseSubTree( pObject, &agent );
176 template <
typename F,
typename = std::enable_if_t<!std::is_convertible_v<F, IDataStoreAgent*>>>
179 return traverseTree( &agent );
216 return registerAddress( parentObj ? parentObj->
registry() :
nullptr, objectPath, pAddress );
234 virtual StatusCode unregisterAddress( std::string_view fullPath ) = 0;
244 return unregisterAddress( pParent ? pParent->
registry() :
nullptr, objPath );
257 #endif // GAUDIKERNEL_IDATAMANAGERSVC_H
IRegistry * registry() const
Get pointer to Registry.
StatusCode traverseTree(F &&f)
Analyse by traversing all data objects in the data store.
StatusCode traverseSubTree(DataObject *pObject, F &&f)
Analyse by traversing all data objects below the sub tree identified by the object.
Data provider interface definition.
StatusCode unregisterAddress(DataObject *pParent, std::string_view objPath)
Unregister object address from the data store.
StatusCode traverseSubTree(std::string_view sub_path, F &&f)
Analyse by traversing all data objects below the sub tree identified by its full path name.
StatusCode registerAddress(DataObject *parentObj, std::string_view objectPath, IOpaqueAddress *pAddress)
Register object address with the data store.
This class is used for returning status codes from appropriate routines.
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.
#define DeclareInterfaceID(iface, major, minor)
Macro to declare the interface ID when using the new mechanism of extending and implementing interfac...
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)