sparrow 1.0.0
Loading...
Searching...
No Matches
sparrow::list_array_crtp_base< DERIVED > Class Template Reference

CRTP base class for all list array implementations. More...

#include <list_array.hpp>

Inheritance diagram for sparrow::list_array_crtp_base< DERIVED >:
[legend]
Collaboration diagram for sparrow::list_array_crtp_base< DERIVED >:
[legend]

Public Types

using self_type = list_array_crtp_base<DERIVED>
 
using base_type = array_bitmap_base<DERIVED>
 
using inner_types = array_inner_types<DERIVED>
 
using value_iterator = typename inner_types::value_iterator
 
using const_value_iterator = typename inner_types::const_value_iterator
 
using size_type = typename base_type::size_type
 
using bitmap_type = typename base_type::bitmap_type
 
using bitmap_const_reference = typename base_type::bitmap_const_reference
 
using const_bitmap_range = typename base_type::const_bitmap_range
 
using inner_value_type = list_value
 
using inner_reference = list_value
 
using inner_const_reference = list_value
 
using value_type = nullable<inner_value_type>
 
using const_reference = nullable<inner_const_reference, bitmap_const_reference>
 
using iterator_tag = typename base_type::iterator_tag
 
- Public Types inherited from sparrow::array_bitmap_base_impl< D, false >
using base_type
 
using size_type
 
using bitmap_type
 
using bitmap_iterator
 
using const_bitmap_iterator
 
using bitmap_const_reference
 
using difference_type
 
using const_bitmap_range
 
using iterator_tag
 

Public Member Functions

constexpr const array_wrapperraw_flat_array () const
 Gets read-only access to the underlying flat array.
 
constexpr array_wrapperraw_flat_array ()
 Gets mutable access to the underlying flat array.
 
- Public Member Functions inherited from sparrow::array_bitmap_base_impl< D, false >
constexpr auto insert_bitmap (const_bitmap_iterator pos, InputIt first, InputIt last) -> bitmap_iterator is_mutable
 
constexpr auto insert_bitmap (const_bitmap_iterator pos, InputIt first, InputIt last) -> bitmap_iterator is_mutable
 

Protected Member Functions

 list_array_crtp_base (arrow_proxy proxy)
 Constructs list array base from Arrow proxy.
 
constexpr list_array_crtp_base (const self_type &)
 Copy constructor.
 
constexpr list_array_crtp_baseoperator= (const self_type &)
 Copy assignment operator.
 
constexpr list_array_crtp_base (self_type &&) noexcept=default
 
constexpr list_array_crtp_baseoperator= (self_type &&) noexcept=default
 
- Protected Member Functions inherited from sparrow::array_bitmap_base_impl< D, false >
 array_bitmap_base_impl (arrow_proxy proxy)
 Constructs array bitmap base from Arrow proxy.
 
constexpr array_bitmap_base_impl (const array_bitmap_base_impl &)
 Copy constructor.
 
constexpr array_bitmap_base_imploperator= (const array_bitmap_base_impl &)
 Copy assignment operator.
 
constexpr array_bitmap_base_impl (array_bitmap_base_impl &&) noexcept=default
 
constexpr array_bitmap_base_imploperator= (array_bitmap_base_impl &&) noexcept=default
 
constexpr bitmap_typeget_bitmap ()
 Gets mutable reference to the validity bitmap.
 
constexpr const bitmap_typeget_bitmap () const
 Gets const reference to the validity bitmap.
 
constexpr void resize_bitmap (size_type new_length, bool value)
 Resizes the validity bitmap to accommodate new array length.
 
constexpr bitmap_iterator insert_bitmap (const_bitmap_iterator pos, bool value, size_type count)
 Inserts validity bits at specified position.
 
constexpr bitmap_iterator insert_bitmap (const_bitmap_iterator pos, InputIt first, InputIt last) is_mutable
 Inserts range of validity bits at specified position.
 
constexpr bitmap_iterator erase_bitmap (const_bitmap_iterator pos, size_type count)
 Erases validity bits starting at specified position.
 
constexpr void update ()
 Updates internal bitmap after external modifications to Arrow data.
 
constexpr non_owning_dynamic_bitset< uint8_t > get_non_owning_dynamic_bitset ()
 Gets non-owning view of the bitmap as dynamic bitset.
 
constexpr bitmap_type make_bitmap ()
 Creates bitmap wrapper from current Arrow validity buffer.
 
 array_bitmap_base_impl (arrow_proxy proxy)
 Constructs array bitmap base from Arrow proxy.
 
constexpr array_bitmap_base_impl (const array_bitmap_base_impl &)
 Copy constructor.
 
constexpr array_bitmap_base_impl (array_bitmap_base_impl &&) noexcept=default
 
constexpr array_bitmap_base_imploperator= (const array_bitmap_base_impl &)
 Copy assignment operator.
 
constexpr array_bitmap_base_imploperator= (array_bitmap_base_impl &&) noexcept=default
 
constexpr bitmap_typeget_bitmap ()
 Gets mutable reference to the validity bitmap.
 
constexpr const bitmap_typeget_bitmap () const
 Gets const reference to the validity bitmap.
 
constexpr void resize_bitmap (size_type new_length, bool value)
 Resizes the validity bitmap to accommodate new array length.
 
constexpr bitmap_iterator insert_bitmap (const_bitmap_iterator pos, bool value, size_type count)
 Inserts validity bits at specified position.
 
constexpr bitmap_iterator insert_bitmap (const_bitmap_iterator pos, InputIt first, InputIt last) is_mutable
 Inserts range of validity bits at specified position.
 
constexpr bitmap_iterator erase_bitmap (const_bitmap_iterator pos, size_type count)
 Erases validity bits starting at specified position.
 
constexpr void update ()
 Updates internal bitmap after external modifications to Arrow data.
 
constexpr non_owning_dynamic_bitset< uint8_t > get_non_owning_dynamic_bitset ()
 Gets non-owning view of the bitmap as dynamic bitset.
 
constexpr bitmap_type make_bitmap ()
 Creates bitmap wrapper from current Arrow validity buffer.
 

Friends

class array_crtp_base< DERIVED >
 
class detail::layout_value_functor< DERIVED, inner_value_type >
 
class detail::layout_value_functor< const DERIVED, inner_value_type >
 

Detailed Description

template<class DERIVED>
class sparrow::list_array_crtp_base< DERIVED >

CRTP base class for all list array implementations.

This class provides common functionality for list-based array types including list_array, big_list_array, list_view_array, big_list_view_array, and fixed_sized_list_array. It manages the flat array of values and provides iteration and access methods.

Template Parameters
DERIVEDThe derived list array type (CRTP pattern)
Precondition
DERIVED must implement offset_range(size_type) method
Postcondition
Maintains Arrow array format compatibility for list types
Provides unified interface for all list array variants

Definition at line 222 of file list_array.hpp.

Member Typedef Documentation

◆ base_type

template<class DERIVED>
using sparrow::list_array_crtp_base< DERIVED >::base_type = array_bitmap_base<DERIVED>

Definition at line 227 of file list_array.hpp.

◆ bitmap_const_reference

template<class DERIVED>
using sparrow::list_array_crtp_base< DERIVED >::bitmap_const_reference = typename base_type::bitmap_const_reference

Definition at line 234 of file list_array.hpp.

◆ bitmap_type

template<class DERIVED>
using sparrow::list_array_crtp_base< DERIVED >::bitmap_type = typename base_type::bitmap_type

Definition at line 233 of file list_array.hpp.

◆ const_bitmap_range

template<class DERIVED>
using sparrow::list_array_crtp_base< DERIVED >::const_bitmap_range = typename base_type::const_bitmap_range

Definition at line 236 of file list_array.hpp.

◆ const_reference

template<class DERIVED>
using sparrow::list_array_crtp_base< DERIVED >::const_reference = nullable<inner_const_reference, bitmap_const_reference>

Definition at line 243 of file list_array.hpp.

◆ const_value_iterator

template<class DERIVED>
using sparrow::list_array_crtp_base< DERIVED >::const_value_iterator = typename inner_types::const_value_iterator

Definition at line 230 of file list_array.hpp.

◆ inner_const_reference

template<class DERIVED>
using sparrow::list_array_crtp_base< DERIVED >::inner_const_reference = list_value

Definition at line 240 of file list_array.hpp.

◆ inner_reference

template<class DERIVED>
using sparrow::list_array_crtp_base< DERIVED >::inner_reference = list_value

Definition at line 239 of file list_array.hpp.

◆ inner_types

template<class DERIVED>
using sparrow::list_array_crtp_base< DERIVED >::inner_types = array_inner_types<DERIVED>

Definition at line 228 of file list_array.hpp.

◆ inner_value_type

template<class DERIVED>
using sparrow::list_array_crtp_base< DERIVED >::inner_value_type = list_value

Definition at line 238 of file list_array.hpp.

◆ iterator_tag

template<class DERIVED>
using sparrow::list_array_crtp_base< DERIVED >::iterator_tag = typename base_type::iterator_tag

Definition at line 244 of file list_array.hpp.

◆ self_type

template<class DERIVED>
using sparrow::list_array_crtp_base< DERIVED >::self_type = list_array_crtp_base<DERIVED>

Definition at line 226 of file list_array.hpp.

◆ size_type

template<class DERIVED>
using sparrow::list_array_crtp_base< DERIVED >::size_type = typename base_type::size_type

Definition at line 231 of file list_array.hpp.

◆ value_iterator

template<class DERIVED>
using sparrow::list_array_crtp_base< DERIVED >::value_iterator = typename inner_types::value_iterator

Definition at line 229 of file list_array.hpp.

◆ value_type

template<class DERIVED>
using sparrow::list_array_crtp_base< DERIVED >::value_type = nullable<inner_value_type>

Definition at line 242 of file list_array.hpp.

Constructor & Destructor Documentation

◆ list_array_crtp_base() [1/3]

template<class DERIVED>
sparrow::list_array_crtp_base< DERIVED >::list_array_crtp_base ( arrow_proxy proxy)
explicitprotected

Constructs list array base from Arrow proxy.

Parameters
proxyArrow proxy containing array data and schema
Precondition
proxy must contain valid Arrow array and schema for list type
proxy must have exactly one child array (the flat values array)

Definition at line 874 of file list_array.hpp.

◆ list_array_crtp_base() [2/3]

template<class DERIVED>
sparrow::list_array_crtp_base< DERIVED >::list_array_crtp_base ( const self_type & rhs)
constexprprotected

Copy constructor.

Parameters
rhsSource array to copy from
Precondition
rhs must be in a valid state
Postcondition
This array contains a deep copy of rhs data
Flat array is reconstructed from copied data

Definition at line 881 of file list_array.hpp.

◆ list_array_crtp_base() [3/3]

template<class DERIVED>
sparrow::list_array_crtp_base< DERIVED >::list_array_crtp_base ( self_type && )
constexprprotecteddefaultnoexcept

Member Function Documentation

◆ operator=() [1/2]

template<class DERIVED>
auto sparrow::list_array_crtp_base< DERIVED >::operator= ( const self_type & rhs)
constexprprotected

Copy assignment operator.

Parameters
rhsSource array to copy from
Returns
Reference to this array
Precondition
rhs must be in a valid state
Postcondition
This array contains a deep copy of rhs data
Previous data is properly released
Flat array is reconstructed from copied data

Definition at line 888 of file list_array.hpp.

Here is the call graph for this function:

◆ operator=() [2/2]

template<class DERIVED>
list_array_crtp_base & sparrow::list_array_crtp_base< DERIVED >::operator= ( self_type && )
constexprprotecteddefaultnoexcept

◆ raw_flat_array() [1/2]

template<class DERIVED>
auto sparrow::list_array_crtp_base< DERIVED >::raw_flat_array ( )
nodiscardconstexpr

Gets mutable access to the underlying flat array.

Returns
Pointer to the flat array containing all list elements
Postcondition
Returns non-null pointer to valid array_wrapper

Definition at line 902 of file list_array.hpp.

◆ raw_flat_array() [2/2]

template<class DERIVED>
auto sparrow::list_array_crtp_base< DERIVED >::raw_flat_array ( ) const
nodiscardconstexpr

Gets read-only access to the underlying flat array.

Returns
Const pointer to the flat array containing all list elements
Postcondition
Returns non-null pointer to valid array_wrapper

Definition at line 896 of file list_array.hpp.

Friends And Related Symbol Documentation

◆ array_crtp_base< DERIVED >

template<class DERIVED>
friend class array_crtp_base< DERIVED >
friend

Definition at line 318 of file list_array.hpp.

◆ detail::layout_value_functor< const DERIVED, inner_value_type >

template<class DERIVED>
friend class detail::layout_value_functor< const DERIVED, inner_value_type >
friend

Definition at line 318 of file list_array.hpp.

◆ detail::layout_value_functor< DERIVED, inner_value_type >

template<class DERIVED>
friend class detail::layout_value_functor< DERIVED, inner_value_type >
friend

Definition at line 318 of file list_array.hpp.


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