1 #ifndef GAUDIKERNEL_EVENTDATAHANDLE 2 #define GAUDIKERNEL_EVENTDATAHANDLE 1 64 template <
typename Owner>
89 template <
typename Owner>
103 if ( sc.isFailure() ) {
106 return HandleDetail::unwrapDataObject<T>( *ptr );
111 template <
typename T>
119 template <
typename Owner>
129 auto ptrAndRef = HandleDetail::wrapDataObject<T>(
std::move( data ) );
130 putImpl( ctx,
std::move( ptrAndRef.first ) );
131 return ptrAndRef.second;
142 auto ptrAndRef = HandleDetail::wrapDataObject<T>(
std::move( ptr ) );
143 putImpl( ctx,
std::move( ptrAndRef.first ) );
144 return ptrAndRef.second;
153 if ( sc.isFailure() ) {
Reentrant write handle for event data.
const DataObjID & targetKey() const
(Configurable) ID of the data being accessed via this handle
static const Metadata s_readHandleMetadata
void putImpl(const EventContext &, std::unique_ptr< DataObject > &&ptr) const
Insert a valid DataObject into the transient event store.
Data provider interface definition.
This class represents an entry point to all the event specific data.
EventDataHandle(Owner &owner, const std::string &propertyName, DataObjID &&defaultID, const std::string &docString, const Metadata &metadata)
Handles are constructed like a Gaudi property (and effectively behave as one, which sets the associat...
void registerToOwner(IDataHandleHolder &owner)
Register ourselves to the owner (algorithm or tool)
DataHandle(const DataHandle &)=delete
Entity which holds DataHandles and can track the associated data dependencies for the Scheduler...
EventReadHandle(Owner *owner, const std::string &propertyName, DataObjID defaultID, const std::string &docString="")
Create a ReadHandle and set up the associated Gaudi property.
EventWriteHandle(Owner *owner, const std::string &propertyName, DataObjID defaultID, const std::string &docString="")
Create a WriteHandle and set up the associated Gaudi property.
void initialize(const IDataHandleHolder &owner) final override
Initialize the data handle.
Base class to all new-style data handles.
virtual StatusCode retrieveObject(IRegistry *pDirectory, boost::string_ref path, DataObject *&pObject)=0
Retrieve object identified by its directory entry.
const T & put(const EventContext &ctx, std::unique_ptr< DataObject > ptr) const
Transfer ownership of heap-allocated data to the store.
StatusCode registerObject(boost::string_ref fullPath, DataObject *pObject)
Register object with the data store.
const T & put(const EventContext &ctx, T data) const
Move data into the store.
static const Metadata s_writeHandleMetadata
Reentrant read handle for event data.
A DataObject is the base class of any identifiable object on any data store.
Helper functions to set/get the application return code.
IDataProviderSvc * m_whiteBoard
Pointer to the whiteboard, set during initialize()
Base class to all DataHandles interacting with the transient event store.