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

#include <PartitionedSpan.h>

Inheritance diagram for 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 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.

◆ 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.

◆ 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.

◆ 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.

◆ 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.

◆ 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.

◆ 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.

◆ 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.

◆ 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.

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.

◆ Addresses()

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

Definition at line 142 of file PartitionedSpan.h.

◆ Data()

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

Definition at line 140 of file PartitionedSpan.h.

◆ EnsureBounds()

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

Definition at line 167 of file PartitionedSpan.h.

◆ EnsureDimensions()

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

Definition at line 156 of file PartitionedSpan.h.

◆ NElements()

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

Definition at line 138 of file PartitionedSpan.h.

◆ NPartitions()

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

Definition at line 130 of file PartitionedSpan.h.

◆ Offsets()

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

Definition at line 144 of file PartitionedSpan.h.

◆ operator[]()

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

Definition at line 112 of file PartitionedSpan.h.

◆ 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.

◆ Size()

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

Definition at line 132 of file PartitionedSpan.h.

◆ UnsafePartitionSpan()

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

Definition at line 174 of file PartitionedSpan.h.

◆ UnsafeSize()

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

Definition at line 172 of file PartitionedSpan.h.

Member Data Documentation

◆ fAdresses

template<typename T>
gsl::span<const uint32_t> cbm::PartitionedSpan< T >::fAdresses
private

Definition at line 152 of file PartitionedSpan.h.

◆ fData

template<typename T>
gsl::span<T> cbm::PartitionedSpan< T >::fData
private

Definition at line 150 of file PartitionedSpan.h.

◆ fOffsets

template<typename T>
gsl::span<const size_t> cbm::PartitionedSpan< T >::fOffsets
private

Definition at line 151 of file PartitionedSpan.h.

◆ NullOffset

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

Definition at line 148 of file PartitionedSpan.h.


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