ATLAS Offline Software
Public Types | Public Member Functions | Private Member Functions | Friends | List of all members
CaloEvent_detail::paramholder< T, TAG > Struct Template Reference

Interface to NavigableToken weights. More...

#include <CaloCellPrefetchIterator.h>

Collaboration diagram for CaloEvent_detail::paramholder< T, TAG >:

Public Types

typedef int param_t
 Type for the parameter (a dummy here). More...
 

Public Member Functions

param_t getParameter () const
 Return the current parameter (will always be 1). More...
 

Private Member Functions

void next ()
 Move to the next weight (a no-op). More...
 
void fetch (const T &it)
 Fetch the next weight from the iterator (a no-op). More...
 

Friends

class CaloCellPrefetchIterator< T >
 

Detailed Description

template<class T, class TAG>
struct CaloEvent_detail::paramholder< T, TAG >

Interface to NavigableToken weights.

No-weight version.

We want our iterator to work with both NavigableToken iterators and normal iterators. The key difference is that NavigableToken also has a weight attached to each element. In that case, we need to save weights in the iterator, like we do below for cell pointers. However, we don't want to do that in the case where we don't actually have weights.

Thus, we break out the part handing the weights into a base class of CaloCellPrefetchIterator. We recognize the NavigableToken case because its iterator has a special iterator_category. So, we have a specialized version of the paramholder class for this case. The unspecialized case handles the case where there are no weights. It's empty, so when used as a base class, should not increase the size of the iterator.

This is the unspecialized case.

Definition at line 52 of file CaloCellPrefetchIterator.h.

Member Typedef Documentation

◆ param_t

template<class T , class TAG >
typedef int CaloEvent_detail::paramholder< T, TAG >::param_t

Type for the parameter (a dummy here).

Definition at line 55 of file CaloCellPrefetchIterator.h.

Member Function Documentation

◆ fetch()

template<class T , class TAG >
void CaloEvent_detail::paramholder< T, TAG >::fetch ( const T &  it)
private

Fetch the next weight from the iterator (a no-op).

◆ getParameter()

template<class T , class TAG >
param_t CaloEvent_detail::paramholder< T, TAG >::getParameter ( ) const

Return the current parameter (will always be 1).

◆ next()

template<class T , class TAG >
void CaloEvent_detail::paramholder< T, TAG >::next ( )
private

Move to the next weight (a no-op).

Friends And Related Function Documentation

◆ CaloCellPrefetchIterator< T >

template<class T , class TAG >
friend class CaloCellPrefetchIterator< T >
friend

Definition at line 58 of file CaloCellPrefetchIterator.h.


The documentation for this struct was generated from the following file: