ATLAS Offline Software
Loading...
Searching...
No Matches
PhaseII::ContainerProxyAdapter< T_RawDataContainerCollection, T_RawDataProxy, accessPolicy > Class Template Reference

An adapter to create a container proxy from a range index which defines the actual element container and the element range. More...

#include <PhaseIIInDetRawDataContainer.h>

Inheritance diagram for PhaseII::ContainerProxyAdapter< T_RawDataContainerCollection, T_RawDataProxy, accessPolicy >:
Collaboration diagram for PhaseII::ContainerProxyAdapter< T_RawDataContainerCollection, T_RawDataProxy, accessPolicy >:

Public Types

using BASE = typename ContainerProxyBase<T_RawDataContainerCollection, unsigned int, accessPolicy >::template ElementProxyBase<accessPolicy>

Static Public Member Functions

static RawDataContainerProxy< T_RawDataContainer, T_RawDataProxy, accessPolicy > create (T_RawDataContainerCollection *container, unsigned int module_index)
 Create the actual container proxy for the elements this proxy refers to.
static RawDataContainerProxy< T_RawDataContainer, T_RawDataProxy, AccessPolicy::ReadOnly > create (const T_RawDataContainerCollection *container, unsigned int module_index)
 Create the actual container proxy for the elements this proxy refers to.
static unsigned int getOriginalElementIndex (const IndexWithRange &index)
 Supporting method for "converted" proxies resulting from the methods above to recover the original "child" index.

Private Types

using T_Range = typename T_RawDataContainerCollection::T_RangeTypeBase
using T_RawDataContainer = std::remove_cvref_t<decltype(std::declval<T_RawDataContainerCollection>().data(std::uint32_t{}))>

Static Private Member Functions

static IndexWithRange getIndexWithRange (const T_RawDataContainerCollection &container, unsigned int module_index)
static const T_RawDataContainergetRawDataContainer (const T_RawDataContainerCollection &container, unsigned int module_index)
static T_RawDataContainergetRawDataContainer (T_RawDataContainerCollection &container, unsigned int module_index)

Detailed Description

template<class T_RawDataContainerCollection, class T_RawDataProxy, AccessPolicy accessPolicy = AccessPolicy::ReadOnly>
class PhaseII::ContainerProxyAdapter< T_RawDataContainerCollection, T_RawDataProxy, accessPolicy >

An adapter to create a container proxy from a range index which defines the actual element container and the element range.

Template Parameters
T_RawDataContainerCollectionthe hit container collection which provides the data for the hits, but also provides the container index and element ranges for a module index. it has to implement the method range(module_index), and data(container_index)
T_RawDataProxya proxy class which provides access to the properties of a single hit and is returned for each child element this proxy provides.

Definition at line 440 of file PhaseIIInDetRawDataContainer.h.

Member Typedef Documentation

◆ BASE

template<class T_RawDataContainerCollection, class T_RawDataProxy, AccessPolicy accessPolicy = AccessPolicy::ReadOnly>
using PhaseII::ContainerProxyAdapter< T_RawDataContainerCollection, T_RawDataProxy, accessPolicy >::BASE = typename ContainerProxyBase<T_RawDataContainerCollection, unsigned int, accessPolicy >::template ElementProxyBase<accessPolicy>

Definition at line 466 of file PhaseIIInDetRawDataContainer.h.

◆ T_Range

template<class T_RawDataContainerCollection, class T_RawDataProxy, AccessPolicy accessPolicy = AccessPolicy::ReadOnly>
using PhaseII::ContainerProxyAdapter< T_RawDataContainerCollection, T_RawDataProxy, accessPolicy >::T_Range = typename T_RawDataContainerCollection::T_RangeTypeBase
private

Definition at line 444 of file PhaseIIInDetRawDataContainer.h.

◆ T_RawDataContainer

template<class T_RawDataContainerCollection, class T_RawDataProxy, AccessPolicy accessPolicy = AccessPolicy::ReadOnly>
using PhaseII::ContainerProxyAdapter< T_RawDataContainerCollection, T_RawDataProxy, accessPolicy >::T_RawDataContainer = std::remove_cvref_t<decltype(std::declval<T_RawDataContainerCollection>().data(std::uint32_t{}))>
private

Definition at line 445 of file PhaseIIInDetRawDataContainer.h.

Member Function Documentation

◆ create() [1/2]

template<class T_RawDataContainerCollection, class T_RawDataProxy, AccessPolicy accessPolicy = AccessPolicy::ReadOnly>
RawDataContainerProxy< T_RawDataContainer, T_RawDataProxy, AccessPolicy::ReadOnly > PhaseII::ContainerProxyAdapter< T_RawDataContainerCollection, T_RawDataProxy, accessPolicy >::create ( const T_RawDataContainerCollection * container,
unsigned int module_index )
inlinestatic

Create the actual container proxy for the elements this proxy refers to.

This is contraction of creating this proxy and converting it into a new one. It will result in a read only proxy.

Definition at line 484 of file PhaseIIInDetRawDataContainer.h.

486 {
490 return proxy;
491 }
An adapter to create a container proxy from a range index which defines the actual element container ...
static IndexWithRange getIndexWithRange(const T_RawDataContainerCollection &container, unsigned int module_index)
static const T_RawDataContainer * getRawDataContainer(const T_RawDataContainerCollection &container, unsigned int module_index)

◆ create() [2/2]

template<class T_RawDataContainerCollection, class T_RawDataProxy, AccessPolicy accessPolicy = AccessPolicy::ReadOnly>
RawDataContainerProxy< T_RawDataContainer, T_RawDataProxy, accessPolicy > PhaseII::ContainerProxyAdapter< T_RawDataContainerCollection, T_RawDataProxy, accessPolicy >::create ( T_RawDataContainerCollection * container,
unsigned int module_index )
inlinestatic

Create the actual container proxy for the elements this proxy refers to.

This is contraction of creating this proxy and converting it into a new one. It can result in a read/write or read only proxy.

Definition at line 472 of file PhaseIIInDetRawDataContainer.h.

◆ getIndexWithRange()

template<class T_RawDataContainerCollection, class T_RawDataProxy, AccessPolicy accessPolicy = AccessPolicy::ReadOnly>
IndexWithRange PhaseII::ContainerProxyAdapter< T_RawDataContainerCollection, T_RawDataProxy, accessPolicy >::getIndexWithRange ( const T_RawDataContainerCollection & container,
unsigned int module_index )
inlinestaticprivate

Definition at line 447 of file PhaseIIInDetRawDataContainer.h.

447 {
448 T_Range range = container.range(module_index); // container has to implement range(module_index)
449 return IndexWithRange(range.beginIndex(),
450 range.endIndex(),
452 }
typename T_RawDataContainerCollection::T_RangeTypeBase T_Range

◆ getOriginalElementIndex()

template<class T_RawDataContainerCollection, class T_RawDataProxy, AccessPolicy accessPolicy = AccessPolicy::ReadOnly>
unsigned int PhaseII::ContainerProxyAdapter< T_RawDataContainerCollection, T_RawDataProxy, accessPolicy >::getOriginalElementIndex ( const IndexWithRange & index)
inlinestatic

Supporting method for "converted" proxies resulting from the methods above to recover the original "child" index.

the original child index is the index which can be used to recover the given converted_element_proxy using the access operator [] on the parent proxy.

Definition at line 497 of file PhaseIIInDetRawDataContainer.h.

497 {
498 return index.rangeIndex();
499 }

◆ getRawDataContainer() [1/2]

template<class T_RawDataContainerCollection, class T_RawDataProxy, AccessPolicy accessPolicy = AccessPolicy::ReadOnly>
const T_RawDataContainer * PhaseII::ContainerProxyAdapter< T_RawDataContainerCollection, T_RawDataProxy, accessPolicy >::getRawDataContainer ( const T_RawDataContainerCollection & container,
unsigned int module_index )
inlinestaticprivate

Definition at line 454 of file PhaseIIInDetRawDataContainer.h.

454 {
456 return &(container.data(range.containerIndex()));
457 }

◆ getRawDataContainer() [2/2]

template<class T_RawDataContainerCollection, class T_RawDataProxy, AccessPolicy accessPolicy = AccessPolicy::ReadOnly>
T_RawDataContainer * PhaseII::ContainerProxyAdapter< T_RawDataContainerCollection, T_RawDataProxy, accessPolicy >::getRawDataContainer ( T_RawDataContainerCollection & container,
unsigned int module_index )
inlinestaticprivate

Definition at line 459 of file PhaseIIInDetRawDataContainer.h.

461 {
463 return &(container.data(range.containerIndex()));
464 }

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