ATLAS Offline Software
Public Types | Public Member Functions | Private Types | Private Attributes | List of all members
SG::detail::PackedLinkConverter< CONT > Class Template Reference

Helper: Convert a PackedLink to an ElementLink and vice-versa. More...

#include <PackedLinkConversions.h>

Collaboration diagram for SG::detail::PackedLinkConverter< CONT >:

Public Types

using value_type = typename PLVH::Link_t
 Resulting ElementLink type. More...
 
using PLink_t = typename PLVH::PLink_t
 The PackedLink type. More...
 
using DLink_t = typename PLVH::DLink_t
 The linked DataLink type. More...
 
using DataLinkBase_span = typename PLVH::DataLinkBase_span
 Type of span over DataLinkBase's. More...
 

Public Member Functions

 PackedLinkConverter (AuxVectorData &container, SG::auxid_t auxid, SG::auxid_t linked_auxid)
 Constructor. More...
 
const value_type operator() (const PackedLinkBase &plink) const
 Convert a PackedLink to an ElementLink. More...
 
void set (PackedLinkBase &pl, const value_type &link)
 Convert an ElementLink to a PackedLink. More...
 
template<class VALLOC , ElementLinkRange< CONT > RANGE>
void set (std::vector< PLink_t, VALLOC > &plv, const RANGE &r)
 Convert a range of ElementLinks to a vector of PackedLinks. More...
 
template<class VALLOC , ElementLinkRange< CONT > RANGE>
void insert (std::vector< PLink_t, VALLOC > &plv, size_t pos, const RANGE &r)
 Insert a range of ElementLinks into a vector of PackedLinks. More...
 

Private Types

using PLVH = detail::PackedLinkVectorHelper< CONT >
 Helper class for maintaining the DataLinks. More...
 

Private Attributes

AuxVectorDatam_container
 The container holding the variables. More...
 
PLVH::LinkedVector m_linkedVec
 The vector of DataLinks. More...
 
DataLinkBase_span m_dlinks
 Span over DataLinks. More...
 

Detailed Description

template<class CONT>
class SG::detail::PackedLinkConverter< CONT >

Helper: Convert a PackedLink to an ElementLink and vice-versa.

Definition at line 119 of file PackedLinkConversions.h.

Member Typedef Documentation

◆ DataLinkBase_span

template<class CONT >
using SG::detail::PackedLinkConverter< CONT >::DataLinkBase_span = typename PLVH::DataLinkBase_span

Type of span over DataLinkBase's.

Definition at line 137 of file PackedLinkConversions.h.

◆ DLink_t

template<class CONT >
using SG::detail::PackedLinkConverter< CONT >::DLink_t = typename PLVH::DLink_t

The linked DataLink type.

Definition at line 134 of file PackedLinkConversions.h.

◆ PLink_t

template<class CONT >
using SG::detail::PackedLinkConverter< CONT >::PLink_t = typename PLVH::PLink_t

The PackedLink type.

Definition at line 131 of file PackedLinkConversions.h.

◆ PLVH

template<class CONT >
using SG::detail::PackedLinkConverter< CONT >::PLVH = detail::PackedLinkVectorHelper<CONT>
private

Helper class for maintaining the DataLinks.

Definition at line 123 of file PackedLinkConversions.h.

◆ value_type

template<class CONT >
using SG::detail::PackedLinkConverter< CONT >::value_type = typename PLVH::Link_t

Resulting ElementLink type.

Definition at line 128 of file PackedLinkConversions.h.

Constructor & Destructor Documentation

◆ PackedLinkConverter()

template<class CONT >
SG::detail::PackedLinkConverter< CONT >::PackedLinkConverter ( AuxVectorData container,
SG::auxid_t  auxid,
SG::auxid_t  linked_auxid 
)

Constructor.

Parameters
containerContainer holding the variables.
auxidThe ID of the PackedLink variable.
linked_auxidThe ID of the linked variable of DataLinks.

Member Function Documentation

◆ insert()

template<class CONT >
template<class VALLOC , ElementLinkRange< CONT > RANGE>
void SG::detail::PackedLinkConverter< CONT >::insert ( std::vector< PLink_t, VALLOC > &  plv,
size_t  pos,
const RANGE &  r 
)

Insert a range of ElementLinks into a vector of PackedLinks.

Parameters
plvThe destination vector of PackedLinks.
posPosition in the container at which to insert the range.
rThe range of ElementLinks.

◆ operator()()

template<class CONT >
const value_type SG::detail::PackedLinkConverter< CONT >::operator() ( const PackedLinkBase plink) const

Convert a PackedLink to an ElementLink.

Parameters
plinkThe link to transform.

◆ set() [1/2]

template<class CONT >
void SG::detail::PackedLinkConverter< CONT >::set ( PackedLinkBase pl,
const value_type link 
)

Convert an ElementLink to a PackedLink.

Parameters
plThe destination PackedLink.
linkThe link to transform.

◆ set() [2/2]

template<class CONT >
template<class VALLOC , ElementLinkRange< CONT > RANGE>
void SG::detail::PackedLinkConverter< CONT >::set ( std::vector< PLink_t, VALLOC > &  plv,
const RANGE &  r 
)

Convert a range of ElementLinks to a vector of PackedLinks.

Parameters
plvThe destination vector of PackedLinks.
rThe range of ElementLinks.

Member Data Documentation

◆ m_container

template<class CONT >
AuxVectorData& SG::detail::PackedLinkConverter< CONT >::m_container
private

The container holding the variables.

Definition at line 187 of file PackedLinkConversions.h.

◆ m_dlinks

template<class CONT >
DataLinkBase_span SG::detail::PackedLinkConverter< CONT >::m_dlinks
private

Span over DataLinks.

Definition at line 193 of file PackedLinkConversions.h.

◆ m_linkedVec

template<class CONT >
PLVH::LinkedVector SG::detail::PackedLinkConverter< CONT >::m_linkedVec
private

The vector of DataLinks.

Definition at line 190 of file PackedLinkConversions.h.


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