13#ifndef STOREGATE_WRITEDECORHANDLE_H
14#define STOREGATE_WRITEDECORHANDLE_H
22#include "GaudiKernel/EventContext.h"
97template <
class T,
class D>
140 const EventContext& ctx);
146 const EventContext& ctx) =
delete;
223 template <
class POINTER_TYPE = container_po
inter_type>
224 requires (!std::is_void_v<POINTER_TYPE>)
253 Gaudi::DataHandle::Mode
mode()
const;
330template <
class D,
class T>
354template <
class D,
class T>
356 const EventContext& ctx);
370 const EventContext& ctx);
Base class for elements of a container that can have aux data.
Some common helper functions used by decoration handles.
Handle class for reading from StoreGate.
Property holding a SG store/key/clid/attr name from which a WriteDecorHandle is made.
Helpers for treating a class enum as a bitmask.
Base class for elements of a container that can have aux data.
SG::Decorator< T, ALLOC > Decorator
Manage lookup of vectors of auxiliary data.
typename AuxDataTraits< T, ALLOC >::span span
typename AuxDataTraits< T, ALLOC >::reference_type reference_type
typename AuxDataTraits< T, ALLOC >::container_pointer_type container_pointer_type
virtual const std::string & key() const override final
Return the StoreGate ID for the referenced object.
std::string store() const
Return the name of the store holding the object we are proxying.
Property holding a SG store/key/clid/attr name from which a WriteDecorHandle is made.
Handle class for adding a decoration to an object.
virtual StatusCode setProxyDict(IProxyDict *store) override
Explicitly set the event store.
WriteDecorHandle(const WriteDecorHandleKey< T > &key, const EventContext &ctx)
Constructor from a ReadDecorHandleKey and an explicit event context.
span getDecorationSpan()
Get a span over the auxilary data array, for the referenced object.
~WriteDecorHandle()
Destructor.
Gaudi::DataHandle::Mode mode() const
Return the mode (read/write/update) for this handle.
const SG::AuxVectorData * vectorData(std::true_type)
Return the referenced object as a SG::AuxVectorData.
WriteDecorHandle(WriteDecorHandle &&rhs)
Move constructor.
WriteDecorHandle(const WriteDecorHandleKey< T > &key)
Constructor from a WriteDecorHandleKey.
bool isAvailable()
Test to see if this variable exists in the store, for the referenced object.
ReadHandle< T > Base
Base class.
const std::string & decorKey() const
Return the name of the decoration alias (CONT.DECOR).
WriteDecorHandle(SG::WriteDecorHandleKey< T > &&key, const EventContext &ctx)=delete
reference_type operator()(const AuxElement &e)
Fetch the variable for one element, as a reference.
POINTER_TYPE getDecorationArray()
Get a pointer to the start of the auxiliary data array, for the referenced object.
const SG::AuxVectorData * vectorData(std::false_type)
Return the referenced object as a SG::AuxVectorData.
SG::auxid_t auxid() const
Return the aux id for this variable.
void makeDecor(const AuxVectorData *avd)
Create the decoration if it doesn't actually exist yet.
typename accessor_t::span span
Span of aux data items.
typename accessor_t::reference_type reference_type
Type referencing an aux data item.
WriteDecorHandle(SG::WriteDecorHandleKey< T > &&key)=delete
const SG::AuxVectorData * vectorData()
Return the referenced object as a SG::AuxVectorData.
SG::AuxElement::Decorator< D > accessor_t
Accessor type for aux data.
typename accessor_t::container_pointer_type container_pointer_type
Pointer into the vector holding an aux data item.
WriteDecorHandle(const WriteDecorHandle &rhs)
Copy constructor.
bool isPresent() const
Is the referenced container present in SG?
WriteDecorHandle & operator=(const WriteDecorHandle &rhs)
Assignment operator.
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
size_t auxid_t
Identifier for a particular aux data item.