CbmRoot
Loading...
Searching...
No Matches
cbm::PartitionedSpan< T > Class Template Reference

#include <PartitionedSpan.h>

Inheritance diagram for cbm::PartitionedSpan< T >:
[legend]

Public Member Functions

 PartitionedSpan ()
 
template<typename Allocator>
 PartitionedSpan (std::vector< T, Allocator > &container, gsl::span< const size_t > offsets, gsl::span< const uint32_t > addresses)
 
template<typename Allocator>
 PartitionedSpan (const std::vector< T, Allocator > &container, gsl::span< const size_t > offsets, gsl::span< const uint32_t > addresses)
 
template<size_t N>
 PartitionedSpan (std::array< T, N > &container, gsl::span< const size_t > offsets, gsl::span< const uint32_t > addresses)
 
template<size_t N>
 PartitionedSpan (const std::array< T, N > &container, gsl::span< const size_t > offsets, gsl::span< const uint32_t > addresses)
 
 PartitionedSpan (gsl::span< T > data, gsl::span< const size_t > offsets, gsl::span< const uint32_t > addresses)
 
template<typename U, typename Allocator, typename = detail::EnableOnConst<U, T>>
 PartitionedSpan (const PartitionedVector< U, Allocator > &container)
 
template<typename U, typename Allocator, typename = detail::EnableOnNonConst<U, T>>
 PartitionedSpan (PartitionedVector< U, Allocator > &container)
 
template<typename U, typename = detail::EnableOnConst<U, T>>
 PartitionedSpan (PartitionedSpan< U > other)
 
gsl::span< T > operator[] (size_t i) const
 
uint32_t Address (size_t i) const
 
std::pair< gsl::span< T >, uint32_t > Partition (size_t i) const
 
size_t NPartitions () const
 
size_t Size (size_t i) const
 
size_t NElements () const
 
gsl::span< T > Data () const
 
gsl::span< const uint32_t > Addresses () const
 
gsl::span< const size_t > Offsets () const
 

Private Member Functions

void EnsureDimensions () const
 
void EnsureBounds (size_t i) const
 
size_t UnsafeSize (size_t i) const
 
gsl::span< T > UnsafePartitionSpan (size_t i) const
 

Private Attributes

gsl::span< T > fData
 
gsl::span< const size_t > fOffsets
 
gsl::span< const uint32_t > fAdresses
 

Static Private Attributes

static constexpr size_t NullOffset [1] = {0}
 

Detailed Description

template<typename T>
class cbm::PartitionedSpan< T >

Definition at line 29 of file PartitionedSpan.h.

Constructor & Destructor Documentation

◆ PartitionedSpan() [1/9]

template<typename T>
cbm::PartitionedSpan< T >::PartitionedSpan ( )
inline

Definition at line 32 of file PartitionedSpan.h.

References EnsureDimensions(), fAdresses, fData, fOffsets, and NullOffset.

Referenced by PartitionedSpan().

◆ PartitionedSpan() [2/9]

template<typename T>
template<typename Allocator>
cbm::PartitionedSpan< T >::PartitionedSpan ( std::vector< T, Allocator > & container,
gsl::span< const size_t > offsets,
gsl::span< const uint32_t > addresses )
inline

Definition at line 37 of file PartitionedSpan.h.

References EnsureDimensions(), fAdresses, fData, and fOffsets.

◆ PartitionedSpan() [3/9]

template<typename T>
template<typename Allocator>
cbm::PartitionedSpan< T >::PartitionedSpan ( const std::vector< T, Allocator > & container,
gsl::span< const size_t > offsets,
gsl::span< const uint32_t > addresses )
inline

Definition at line 48 of file PartitionedSpan.h.

References EnsureDimensions(), fAdresses, fData, and fOffsets.

◆ PartitionedSpan() [4/9]

template<typename T>
template<size_t N>
cbm::PartitionedSpan< T >::PartitionedSpan ( std::array< T, N > & container,
gsl::span< const size_t > offsets,
gsl::span< const uint32_t > addresses )
inline

Definition at line 58 of file PartitionedSpan.h.

References EnsureDimensions(), fAdresses, fData, and fOffsets.

◆ PartitionedSpan() [5/9]

template<typename T>
template<size_t N>
cbm::PartitionedSpan< T >::PartitionedSpan ( const std::array< T, N > & container,
gsl::span< const size_t > offsets,
gsl::span< const uint32_t > addresses )
inline

Definition at line 68 of file PartitionedSpan.h.

References EnsureDimensions(), fAdresses, fData, and fOffsets.

◆ PartitionedSpan() [6/9]

template<typename T>
cbm::PartitionedSpan< T >::PartitionedSpan ( gsl::span< T > data,
gsl::span< const size_t > offsets,
gsl::span< const uint32_t > addresses )
inline

Definition at line 78 of file PartitionedSpan.h.

References EnsureDimensions(), fAdresses, fData, and fOffsets.

◆ PartitionedSpan() [7/9]

template<typename T>
template<typename U, typename Allocator, typename = detail::EnableOnConst<U, T>>
cbm::PartitionedSpan< T >::PartitionedSpan ( const PartitionedVector< U, Allocator > & container)
inline

Definition at line 87 of file PartitionedSpan.h.

References Addresses(), Data(), EnsureDimensions(), fAdresses, fData, fOffsets, and Offsets().

◆ PartitionedSpan() [8/9]

template<typename T>
template<typename U, typename Allocator, typename = detail::EnableOnNonConst<U, T>>
cbm::PartitionedSpan< T >::PartitionedSpan ( PartitionedVector< U, Allocator > & container)
inline

Definition at line 96 of file PartitionedSpan.h.

References Addresses(), Data(), EnsureDimensions(), fAdresses, fData, fOffsets, and Offsets().

◆ PartitionedSpan() [9/9]

template<typename T>
template<typename U, typename = detail::EnableOnConst<U, T>>
cbm::PartitionedSpan< T >::PartitionedSpan ( PartitionedSpan< U > other)
inline

Definition at line 105 of file PartitionedSpan.h.

References Addresses(), Data(), fAdresses, fData, fOffsets, Offsets(), and PartitionedSpan().

Member Function Documentation

◆ Address()

template<typename T>
uint32_t cbm::PartitionedSpan< T >::Address ( size_t i) const
inline

Definition at line 118 of file PartitionedSpan.h.

References EnsureBounds(), and fAdresses.

Referenced by PartitionedSpanTest::Ensure(), and TEST_F().

◆ Addresses()

template<typename T>
gsl::span< const uint32_t > cbm::PartitionedSpan< T >::Addresses ( ) const
inline

Definition at line 142 of file PartitionedSpan.h.

References fAdresses.

Referenced by PartitionedSpan(), PartitionedSpan(), and PartitionedSpan().

◆ Data()

template<typename T>
gsl::span< T > cbm::PartitionedSpan< T >::Data ( ) const
inline

Definition at line 140 of file PartitionedSpan.h.

References fData.

Referenced by PartitionedSpan(), PartitionedSpan(), and PartitionedSpan().

◆ EnsureBounds()

template<typename T>
void cbm::PartitionedSpan< T >::EnsureBounds ( size_t i) const
inlineprivate

Definition at line 167 of file PartitionedSpan.h.

References fAdresses.

Referenced by Address(), operator[](), Partition(), and Size().

◆ EnsureDimensions()

template<typename T>
void cbm::PartitionedSpan< T >::EnsureDimensions ( ) const
inlineprivate

◆ NElements()

template<typename T>
size_t cbm::PartitionedSpan< T >::NElements ( ) const
inline

Definition at line 138 of file PartitionedSpan.h.

References fData.

Referenced by PartitionedSpanTest::Ensure(), and TEST_F().

◆ NPartitions()

template<typename T>
size_t cbm::PartitionedSpan< T >::NPartitions ( ) const
inline

Definition at line 130 of file PartitionedSpan.h.

References fAdresses.

Referenced by PartitionedSpanTest::Ensure(), and TEST_F().

◆ Offsets()

template<typename T>
gsl::span< const size_t > cbm::PartitionedSpan< T >::Offsets ( ) const
inline

Definition at line 144 of file PartitionedSpan.h.

References fOffsets.

Referenced by PartitionedSpan(), PartitionedSpan(), and PartitionedSpan().

◆ operator[]()

template<typename T>
gsl::span< T > cbm::PartitionedSpan< T >::operator[] ( size_t i) const
inline

Definition at line 112 of file PartitionedSpan.h.

References EnsureBounds(), and UnsafePartitionSpan().

◆ Partition()

template<typename T>
std::pair< gsl::span< T >, uint32_t > cbm::PartitionedSpan< T >::Partition ( size_t i) const
inline

Definition at line 124 of file PartitionedSpan.h.

References EnsureBounds(), fAdresses, and UnsafePartitionSpan().

Referenced by PartitionedSpanTest::Ensure(), and TEST_F().

◆ Size()

template<typename T>
size_t cbm::PartitionedSpan< T >::Size ( size_t i) const
inline

Definition at line 132 of file PartitionedSpan.h.

References EnsureBounds(), and UnsafeSize().

Referenced by PartitionedSpanTest::Ensure(), and TEST_F().

◆ UnsafePartitionSpan()

template<typename T>
gsl::span< T > cbm::PartitionedSpan< T >::UnsafePartitionSpan ( size_t i) const
inlineprivate

Definition at line 174 of file PartitionedSpan.h.

References fData, fOffsets, and UnsafeSize().

Referenced by operator[](), and Partition().

◆ UnsafeSize()

template<typename T>
size_t cbm::PartitionedSpan< T >::UnsafeSize ( size_t i) const
inlineprivate

Definition at line 172 of file PartitionedSpan.h.

References fOffsets.

Referenced by Size(), and UnsafePartitionSpan().

Member Data Documentation

◆ fAdresses

◆ fData

◆ fOffsets

◆ NullOffset

template<typename T>
size_t cbm::PartitionedSpan< T >::NullOffset[1] = {0}
staticconstexprprivate

Definition at line 148 of file PartitionedSpan.h.

Referenced by PartitionedSpan().


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