ATLAS Offline Software
Classes | Public Types | Public Member Functions | Public Attributes | Private Attributes | List of all members
HLTNavDetails::HolderImp< STORED, CONTAINER > Class Template Reference

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>

Collaboration diagram for HLTNavDetails::HolderImp< STORED, CONTAINER >:

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, MemoryMgrMemoryMgrMap
 

Public Member Functions

 HolderImp ()
 
 HolderImp (const std::string &prefix, const std::string &label, uint16_t idx)
 
virtual ~HolderImp ()
 
virtual IHolderclone (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 More...
 
virtual bool get (const STORED *&dest, HLT::TriggerElement::ObjectIndex idx)
 gets object(s) holded More...
 
virtual bool contains (const STORED *obj, HLT::TriggerElement::ObjectIndex &idx)
 check if object(s) in dest are held by this holder More...
 
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)
 
virtual bool syncWithSG (SG::OwnershipPolicy policy=SG::OWN_ELEMENTS)
 
virtual bool checkAndSetOwnership (SG::OwnershipPolicy policy)
 
virtual bool serialize (std::vector< uint32_t > &output) const
 
virtual const std::string & key () const
 
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
 
virtual const std::string & typeName () const
 
virtual CLID containerClid () const
 
virtual const std::string & collectionName () const
 
virtual CLID auxClidOrZero () const
 
virtual const ITypeProxycontainerTypeProxy () const
 

Public Attributes

ContainerProxy m_containerProxy
 
MemoryMgrMap m_memMgr
 

Private Attributes

std::string m_key
 

Detailed Description

template<class STORED, class CONTAINER>
class HLTNavDetails::HolderImp< STORED, CONTAINER >

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

Definition at line 281 of file Holder.h.

Member Typedef Documentation

◆ base_type

template<class STORED , class CONTAINER >
typedef Holder<STORED> HLTNavDetails::HolderImp< STORED, CONTAINER >::base_type

Definition at line 330 of file Holder.h.

◆ container_type

template<class STORED , class CONTAINER >
typedef CONTAINER HLTNavDetails::HolderImp< STORED, CONTAINER >::container_type

Definition at line 332 of file Holder.h.

◆ ContainerProxy

template<class STORED , class CONTAINER >
typedef HLTNavDetails::TypeProxy<CONTAINER> HLTNavDetails::HolderImp< STORED, CONTAINER >::ContainerProxy

Definition at line 334 of file Holder.h.

◆ FeatureProxy

template<class STORED , class CONTAINER >
typedef HLTNavDetails::TypeProxy<STORED> HLTNavDetails::HolderImp< STORED, CONTAINER >::FeatureProxy

Definition at line 333 of file Holder.h.

◆ MemoryMgrMap

template<class STORED , class CONTAINER >
typedef std::multimap<HLT::TriggerElement::ObjectIndex, MemoryMgr> HLTNavDetails::HolderImp< STORED, CONTAINER >::MemoryMgrMap

Definition at line 399 of file Holder.h.

◆ stored_type

template<class STORED , class CONTAINER >
typedef STORED HLTNavDetails::HolderImp< STORED, CONTAINER >::stored_type

Definition at line 331 of file Holder.h.

Constructor & Destructor Documentation

◆ HolderImp() [1/2]

template<class STORED , class CONTAINER >
HLTNavDetails::HolderImp< STORED, CONTAINER >::HolderImp ( )

◆ HolderImp() [2/2]

template<class STORED , class CONTAINER >
HLTNavDetails::HolderImp< STORED, CONTAINER >::HolderImp ( const std::string &  prefix,
const std::string &  label,
uint16_t  idx 
)

◆ ~HolderImp()

template<class STORED , class CONTAINER >
virtual HLTNavDetails::HolderImp< STORED, CONTAINER >::~HolderImp ( )
virtual

Member Function Documentation

◆ add()

template<class STORED , class CONTAINER >
virtual HLT::TriggerElement::ObjectIndex HLTNavDetails::HolderImp< STORED, CONTAINER >::add ( const STORED *  f,
bool  inSG = false,
const std::string &  = "" 
)
virtual

adds object(s) to be holded

◆ auxClidOrZero()

template<class STORED , class CONTAINER >
virtual CLID HLTNavDetails::HolderImp< STORED, CONTAINER >::auxClidOrZero ( ) const
virtual

◆ checkAndSetOwnership()

template<class STORED , class CONTAINER >
virtual bool HLTNavDetails::HolderImp< STORED, CONTAINER >::checkAndSetOwnership ( SG::OwnershipPolicy  policy)
virtual

◆ clone()

template<class STORED , class CONTAINER >
virtual IHolder* HLTNavDetails::HolderImp< STORED, CONTAINER >::clone ( const std::string &  prefix,
const std::string &  label,
uint16_t  idx 
) const
virtual

◆ collectionName()

template<class STORED , class CONTAINER >
virtual const std::string& HLTNavDetails::HolderImp< STORED, CONTAINER >::collectionName ( ) const
inlinevirtual

Definition at line 383 of file Holder.h.

◆ containerClid()

template<class STORED , class CONTAINER >
virtual CLID HLTNavDetails::HolderImp< STORED, CONTAINER >::containerClid ( ) const
inlinevirtual

Definition at line 382 of file Holder.h.

382 { return ClassID_traits<CONTAINER>::ID(); }

◆ containerTypeProxy()

template<class STORED , class CONTAINER >
virtual const ITypeProxy& HLTNavDetails::HolderImp< STORED, CONTAINER >::containerTypeProxy ( ) const
inlinevirtual

Definition at line 386 of file Holder.h.

386 { return m_containerProxy; }

◆ contains()

template<class STORED , class CONTAINER >
virtual bool HLTNavDetails::HolderImp< STORED, CONTAINER >::contains ( const STORED *  obj,
HLT::TriggerElement::ObjectIndex idx 
)
virtual

check if object(s) in dest are held by this holder

◆ get()

template<class STORED , class CONTAINER >
virtual bool HLTNavDetails::HolderImp< STORED, CONTAINER >::get ( const STORED *&  dest,
HLT::TriggerElement::ObjectIndex  idx 
)
virtual

gets object(s) holded

◆ getAuxDataObject()

template<class STORED , class CONTAINER >
virtual DataObject* HLTNavDetails::HolderImp< STORED, CONTAINER >::getAuxDataObject ( )
virtual

◆ getDataObject()

template<class STORED , class CONTAINER >
virtual DataObject* HLTNavDetails::HolderImp< STORED, CONTAINER >::getDataObject ( )
virtual

◆ getElementLinks() [1/2]

template<class STORED , class CONTAINER >
bool HLTNavDetails::HolderImp< STORED, CONTAINER >::getElementLinks ( ElementLinkVector< CONTAINER > &  cont)

◆ getElementLinks() [2/2]

template<class STORED , class CONTAINER >
bool HLTNavDetails::HolderImp< STORED, CONTAINER >::getElementLinks ( ElementLinkVector< CONTAINER > &  cont,
HLT::TriggerElement::ObjectIndex  idx 
)

◆ getNextKey()

template<class STORED , class CONTAINER >
virtual std::string HLTNavDetails::HolderImp< STORED, CONTAINER >::getNextKey ( )
virtual

◆ getUniqueKey()

template<class STORED , class CONTAINER >
virtual std::string HLTNavDetails::HolderImp< STORED, CONTAINER >::getUniqueKey ( )
virtual

◆ getWithLink()

template<class STORED , class CONTAINER >
bool HLTNavDetails::HolderImp< STORED, CONTAINER >::getWithLink ( typename set_link< STORED, CONTAINER, std::is_same< STORED, CONTAINER >::value >::type &  link,
HLT::TriggerElement::ObjectIndex idx 
)

◆ key()

template<class STORED , class CONTAINER >
virtual const std::string& HLTNavDetails::HolderImp< STORED, CONTAINER >::key ( ) const
inlinevirtual

Definition at line 372 of file Holder.h.

372 { return m_key; }

◆ prepare()

template<class STORED , class CONTAINER >
virtual void HLTNavDetails::HolderImp< STORED, CONTAINER >::prepare ( const asg::AsgMessaging logger,
HLT::AccessProxy sg,
IConversionSvc *  objSerializer,
bool  readonly = false 
)
virtual

◆ print()

template<class STORED , class CONTAINER >
virtual void HLTNavDetails::HolderImp< STORED, CONTAINER >::print ( MsgStream &  m) const
virtual

◆ serialize()

template<class STORED , class CONTAINER >
virtual bool HLTNavDetails::HolderImp< STORED, CONTAINER >::serialize ( std::vector< uint32_t > &  output) const
virtual

◆ setAuxDataObject()

template<class STORED , class CONTAINER >
virtual bool HLTNavDetails::HolderImp< STORED, CONTAINER >::setAuxDataObject ( DataObject *  dobjaux)
virtual

◆ setDataObject()

template<class STORED , class CONTAINER >
virtual bool HLTNavDetails::HolderImp< STORED, CONTAINER >::setDataObject ( DataObject *  dobj)
virtual

◆ syncWithSG()

template<class STORED , class CONTAINER >
virtual bool HLTNavDetails::HolderImp< STORED, CONTAINER >::syncWithSG ( SG::OwnershipPolicy  policy = SG::OWN_ELEMENTS)
virtual

◆ typeClid()

template<class STORED , class CONTAINER >
virtual CLID HLTNavDetails::HolderImp< STORED, CONTAINER >::typeClid ( ) const
inlinevirtual

Definition at line 380 of file Holder.h.

380 { return ClassID_traits<STORED>::ID(); }

◆ typeName()

template<class STORED , class CONTAINER >
virtual const std::string& HLTNavDetails::HolderImp< STORED, CONTAINER >::typeName ( ) const
inlinevirtual

Definition at line 381 of file Holder.h.

Member Data Documentation

◆ m_containerProxy

template<class STORED , class CONTAINER >
ContainerProxy HLTNavDetails::HolderImp< STORED, CONTAINER >::m_containerProxy

Definition at line 397 of file Holder.h.

◆ m_key

template<class STORED , class CONTAINER >
std::string HLTNavDetails::HolderImp< STORED, CONTAINER >::m_key
private

Definition at line 403 of file Holder.h.

◆ m_memMgr

template<class STORED , class CONTAINER >
MemoryMgrMap HLTNavDetails::HolderImp< STORED, CONTAINER >::m_memMgr

Definition at line 400 of file Holder.h.


The documentation for this class was generated from the following file:
HLTNavDetails::HolderImp::m_key
std::string m_key
Definition: Holder.h:403
ClassID_traits::ID
static const CLID & ID()
the CLID of T
Definition: Control/AthenaKernel/AthenaKernel/ClassID_traits.h:50
ClassID_traits::typeName
static const std::string & typeName()
the demangled type name of T
Definition: Control/AthenaKernel/AthenaKernel/ClassID_traits.h:56
HLTNavDetails::HolderImp::m_containerProxy
ContainerProxy m_containerProxy
Definition: Holder.h:397