![]() |
ATLAS Offline Software
|
This is an implementation class for all Holders It is templated with 2 arguments STORED which is type of stored objects Another type is CONTAINER for that type. More...
#include <Holder.h>
Classes | |
| struct | MemoryMgr |
Public Types | |
| typedef Holder< STORED > | base_type |
| typedef STORED | stored_type |
| typedef CONTAINER | container_type |
| typedef HLTNavDetails::TypeProxy< STORED > | FeatureProxy |
| typedef HLTNavDetails::TypeProxy< CONTAINER > | ContainerProxy |
| typedef std::multimap< HLT::TriggerElement::ObjectIndex, MemoryMgr > | MemoryMgrMap |
Public Member Functions | |
| HolderImp () | |
| HolderImp (const std::string &prefix, const std::string &label, uint16_t idx) | |
| virtual | ~HolderImp () |
| virtual IHolder * | clone (const std::string &prefix, const std::string &label, uint16_t idx) const |
| virtual HLT::TriggerElement::ObjectIndex | add (const STORED *f, bool inSG=false, const std::string &="") |
| adds object(s) to be holded | |
| virtual bool | get (const STORED *&dest, HLT::TriggerElement::ObjectIndex idx) |
| gets object(s) holded | |
| virtual bool | contains (const STORED *obj, HLT::TriggerElement::ObjectIndex &idx) |
| check if object(s) in dest are held by this holder | |
| bool | getElementLinks (ElementLinkVector< CONTAINER > &cont, HLT::TriggerElement::ObjectIndex idx) |
| bool | getElementLinks (ElementLinkVector< CONTAINER > &cont) |
| bool | getWithLink (typename set_link< STORED, CONTAINER, std::is_same< STORED, CONTAINER >::value >::type &link, HLT::TriggerElement::ObjectIndex &idx) |
| virtual std::string | getUniqueKey () |
| virtual std::string | getNextKey () |
| virtual void | prepare (const asg::AsgMessaging &logger, HLT::AccessProxy *sg, IConversionSvc *objSerializer, bool readonly=false) |
| prepares this holder by setting messaging, StoreGate access and providing serializer | |
| virtual bool | syncWithSG (SG::OwnershipPolicy policy=SG::OWN_ELEMENTS) |
| virtual bool | checkAndSetOwnership (SG::OwnershipPolicy policy) |
| virtual bool | serialize (std::vector< uint32_t > &output) const |
| serializes this Holder | |
| virtual const std::string & | key () const |
| returns the containers StoreGate key | |
| virtual void | print (MsgStream &m) const |
| virtual DataObject * | getDataObject () |
| virtual DataObject * | getAuxDataObject () |
| virtual bool | setDataObject (DataObject *dobj) |
| virtual bool | setAuxDataObject (DataObject *dobjaux) |
| virtual CLID | typeClid () const |
| returns the CLID of objects stores by this holder | |
| virtual const std::string & | typeName () const |
| returns the object's name stored by this holder | |
| virtual CLID | containerClid () const |
| virtual const std::string & | collectionName () const |
| returns the collection's name stored by this holder | |
| virtual CLID | auxClidOrZero () const |
| virtual const ITypeProxy & | containerTypeProxy () const |
| Get the proxy for the container. | |
| virtual HLT::TriggerElement::ObjectIndex add | ATLAS_NOT_THREAD_SAFE (const STORED *f, bool inSG, const std::string &="")=0 |
| saved object in this holder | |
| template<class CONTAINER2> | |
| bool | get (ElementLinkVector< CONTAINER2 > &cont) |
| template<class CONTAINER2> | |
| bool | get (ElementLinkVector< CONTAINER2 > &cont, HLT::TriggerElement::ObjectIndex idx) |
| template<class CONTAINER2> | |
| bool | getWithLink (typename set_link< STORED, CONTAINER2, std::is_same< STORED, CONTAINER2 >::value >::type &link, HLT::TriggerElement::ObjectIndex &idx) |
| const std::string & | label () const |
| returns the label of objects stores by this holder | |
| virtual const std::string & | prefix () const |
| returns the containers StoreGate prefix | |
| uint16_t | subTypeIndex () const |
| returns the index (short number used when linking object to the TE) of objects stores by this holder | |
| std::string | generateAliasKey (CLID c, uint16_t sti, const std::string &label, unsigned size) |
| bool | serializeWithPayload (const xAOD::AuxSelection &sel, std::vector< uint32_t > &output, size_t &payloadsize) |
| serializes this Holder including payload | |
| bool | serializePayload (std::vector< uint32_t > &dataBlob, const xAOD::AuxSelection &sel) |
| serializes the payload of this Holder | |
| bool | deserializePayload (const std::vector< uint32_t > &dataBlob, int version) |
| deserialization of holder payload | |
Static Public Member Functions | |
| static bool | enquireSerialized (std::vector< uint32_t >::const_iterator &fromHere, const std::vector< uint32_t >::const_iterator &end, class_id_type &c, std::string &label, sub_index_type &subtypeIndex) |
Public Attributes | |
| ContainerProxy | m_containerProxy |
| MemoryMgrMap | m_memMgr |
Protected Member Functions | |
| MsgStream & | msg () const |
| MsgStream & | msg (const MSG::Level lvl) const |
| bool | msgLvl (const MSG::Level lvl) const |
Protected Attributes | |
| const asg::AsgMessaging * | m_logger {0} |
| IConversionSvc * | m_objectserializerSvc {0} |
| pointer to object serializer | |
| HLT::AccessProxy * | m_storeGate {0} |
| pointer to SG | |
| bool | m_readonly {false} |
| ITypeProxy * | m_aux {0} |
Private Member Functions | |
| bool | serializeDynVars (const SG::IAuxStoreIO &iio, const xAOD::AuxSelection &sel, std::vector< uint32_t > &dataBlob) |
| Serialize all selected dynamic variables for an xAOD object. | |
| bool | deserializeDynVars (const std::vector< uint32_t > &dataBlob, size_t offs, SG::IAuxStore &store) |
| Read dynamic auxiliary variables from a serialized buffer. | |
| std::unique_ptr< SG::IAuxStore > | deserializeDynVars (const std::vector< uint32_t > &dataBlob, size_t offs) |
| Read dynamic auxiliary variables from a serialized buffer. | |
| const std::type_info * | getElementType (const std::string &tname, std::string &elementTypeName) const |
| Find the type of an element of a vector. | |
Private Attributes | |
| std::string | m_key |
| std::string | m_prefix |
| prefix for key given to the objects | |
| std::string | m_label |
| label given to the objects in this holder (labels given at attachFeature) | |
| uint16_t | m_subTypeIndex {0} |
| index to notify how many objects of given type we have (we need to record it in case of slimming will be done latter) | |
| int | m_uniqueCounter {0} |
| ToolHandle< ITrigSerializerToolBase > | m_serializer |
| Serializer tool; used for dynamic variables. | |
This is an implementation class for all Holders It is templated with 2 arguments STORED which is type of stored objects Another type is CONTAINER for that type.
Examples when it works are: HolderImp<A, DataVector > — typical HolderImp< A, Acontainer> > — as above, Acontainer is either typedef for DataVector or inherits from it HolderImp< DataVector, DataVector > — when both are of the same type HolderImp< Acontainer, Acontainer> > — as above
| typedef Holder<STORED> HLTNavDetails::HolderImp< STORED, CONTAINER >::base_type |
| typedef CONTAINER HLTNavDetails::HolderImp< STORED, CONTAINER >::container_type |
| typedef HLTNavDetails::TypeProxy<CONTAINER> HLTNavDetails::HolderImp< STORED, CONTAINER >::ContainerProxy |
| typedef HLTNavDetails::TypeProxy<STORED> HLTNavDetails::HolderImp< STORED, CONTAINER >::FeatureProxy |
| typedef std::multimap<HLT::TriggerElement::ObjectIndex, MemoryMgr> HLTNavDetails::HolderImp< STORED, CONTAINER >::MemoryMgrMap |
| typedef STORED HLTNavDetails::HolderImp< STORED, CONTAINER >::stored_type |
| HLTNavDetails::HolderImp< STORED, CONTAINER >::HolderImp | ( | ) |
| HLTNavDetails::HolderImp< STORED, CONTAINER >::HolderImp | ( | const std::string & | prefix, |
| const std::string & | label, | ||
| uint16_t | idx ) |
|
virtual |
|
virtual |
adds object(s) to be holded
|
pure virtualinherited |
saved object in this holder
|
virtual |
Implements HLTNavDetails::IHolder.
|
virtual |
Implements HLTNavDetails::IHolder.
|
virtual |
Implements HLTNavDetails::IHolder.
|
inlinevirtual |
returns the collection's name stored by this holder
Implements HLTNavDetails::IHolder.
Definition at line 383 of file Holder.h.
|
inlinevirtual |
|
inlinevirtual |
Get the proxy for the container.
Implements HLTNavDetails::IHolder.
Definition at line 386 of file Holder.h.
|
virtual |
check if object(s) in dest are held by this holder
Implements HLTNavDetails::Holder< STORED >.
|
privateinherited |
Read dynamic auxiliary variables from a serialized buffer.
| dataBlob | Serialized data. |
| offs | Offset in dataBlob where dynamic variables start. |
| sz | Number of elements in the xAOD container. |
dataBlob should be formatted as described in the documentation for serializeDynVars starting at offs. Returns a new dynamic store.
Definition at line 452 of file Holder.cxx.
|
privateinherited |
Read dynamic auxiliary variables from a serialized buffer.
| dataBlob | Serialized data. | |
| offs | Offset in dataBlob where dynamic variables start. | |
| [out] | store | Auxiliary store for the object being read. |
dataBlob should be formatted as described in the documentation for serializeDynVars starting at offs. store should be convertable to IAuxStoreHolder. A new dynamic store will be created and registered with store via setStore.
Returns true on success, false on failure.
Definition at line 405 of file Holder.cxx.
|
inherited |
deserialization of holder payload
Definition at line 148 of file Holder.cxx.
|
staticinherited |
Definition at line 12 of file BaseHolder.cxx.
|
inherited |
Definition at line 98 of file Holder.cxx.
|
inherited |
|
inherited |
|
virtual |
gets object(s) holded
Implements HLTNavDetails::Holder< STORED >.
|
virtual |
Implements HLTNavDetails::IHolder.
|
virtual |
Implements HLTNavDetails::IHolder.
| bool HLTNavDetails::HolderImp< STORED, CONTAINER >::getElementLinks | ( | ElementLinkVector< CONTAINER > & | cont | ) |
| bool HLTNavDetails::HolderImp< STORED, CONTAINER >::getElementLinks | ( | ElementLinkVector< CONTAINER > & | cont, |
| HLT::TriggerElement::ObjectIndex | idx ) |
|
privateinherited |
Find the type of an element of a vector.
| tname | The name of the type to analyze. |
| [out[ | elementTypeName The name of the type of an element of the vector. |
Returns the type_info for an element of the vector.
| tname_in | The name of the type to analyze. | |
| [out] | elementTypeName | The name of the type of an element of the vector. |
Returns the type_info for an element of the vector.
Definition at line 544 of file Holder.cxx.
|
virtual |
Implements HLTNavDetails::IHolder.
|
virtual |
Implements HLTNavDetails::IHolder.
|
inlineinherited |
| bool HLTNavDetails::HolderImp< STORED, CONTAINER >::getWithLink | ( | typename set_link< STORED, CONTAINER, std::is_same< STORED, CONTAINER >::value >::type & | link, |
| HLT::TriggerElement::ObjectIndex & | idx ) |
|
inlinevirtual |
returns the containers StoreGate key
Implements HLTNavDetails::IHolder.
Definition at line 372 of file Holder.h.
|
inlinevirtualinherited |
returns the label of objects stores by this holder
Implements HLT::BaseHolder.
Definition at line 85 of file Holder.h.
|
inlineprotectedinherited |
|
inlineprotectedinherited |
|
inlineprotectedinherited |
|
inlinevirtualinherited |
|
virtual |
prepares this holder by setting messaging, StoreGate access and providing serializer
Reimplemented from HLTNavDetails::IHolder.
|
virtual |
Reimplemented from HLTNavDetails::IHolder.
|
virtual |
serializes this Holder
Reimplemented from HLTNavDetails::IHolder.
|
privateinherited |
Serialize all selected dynamic variables for an xAOD object.
| iio | The auxiliary store for the xAOD object. | |
| sel | Selection object for variables to write. | |
| [out] | dataBlob | Serialized data. |
Returns true on success, false on failure.
Each selected dynamic variable is concatenated to dataBlob as follows.
Definition at line 345 of file Holder.cxx.
|
inherited |
serializes the payload of this Holder
Definition at line 254 of file Holder.cxx.
|
inherited |
serializes this Holder including payload
Definition at line 79 of file Holder.cxx.
|
virtual |
Implements HLTNavDetails::IHolder.
|
virtual |
Implements HLTNavDetails::IHolder.
|
inlinevirtualinherited |
returns the index (short number used when linking object to the TE) of objects stores by this holder
Implements HLT::BaseHolder.
Definition at line 111 of file Holder.h.
|
virtual |
Implements HLTNavDetails::IHolder.
|
inlinevirtual |
returns the CLID of objects stores by this holder
Implements HLTNavDetails::IHolder.
Definition at line 380 of file Holder.h.
|
inlinevirtual |
returns the object's name stored by this holder
Implements HLTNavDetails::IHolder.
Definition at line 381 of file Holder.h.
|
protectedinherited |
| ContainerProxy HLTNavDetails::HolderImp< STORED, CONTAINER >::m_containerProxy |
|
private |
|
privateinherited |
|
protectedinherited |
| MemoryMgrMap HLTNavDetails::HolderImp< STORED, CONTAINER >::m_memMgr |
|
protectedinherited |
|
privateinherited |
|
protectedinherited |
|
privateinherited |
|
protectedinherited |
|
privateinherited |
|
privateinherited |