Everett
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Private Types | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
everett::cola_index_builder< P, Native, Main, Output > Struct Template Reference

#include <cola_index.h>

Public Types

using policy_type = P
 
using index_type = cola_index< P, Native, Main >
 
using native_pointer = typename index_type::native_pointer
 
using pair_type = typename index_type::pair_type
 
using main_pointer = typename index_type::main_pointer
 
using target_type = typename index_type::target_type
 

Public Member Functions

 cola_index_builder (native_pointer native, main_pointer main={}, native_pointer secondary={})
 
 cola_index_builder (Output output, native_pointer native, main_pointer main={}, native_pointer secondary={})
 
 cola_index_builder (cola_index_builder const &)=delete
 
cola_index_builder & operator= (cola_index_builder const &)=delete
 
 cola_index_builder (cola_index_builder &&)=default
 
cola_index_builder & operator= (cola_index_builder &&)=default
 
bool done () const noexcept
 
bool failed () const noexcept
 
bool finished () const noexcept
 
std::uint64_t size () const noexcept
 
native_pointer native_owner () const noexcept
 
main_pointer main_target () const noexcept
 
native_pointer secondary_target () const noexcept
 
std::uint64_t step (std::uint64_t budget)
 
auto finish ()
 

Private Types

using native_cursor_type = decltype(std::declval< Native const & >().view().cursor())
 

Private Member Functions

void require_active () const
 
bool live (unsigned origin) const noexcept
 
bit_view head (unsigned origin) const
 
std::uint64_t step_terminal (std::uint64_t budget)
 
void flush_group ()
 

Static Private Member Functions

static native_pointer checked (native_pointer native)
 
static std::uint64_t advance_native (native_cursor_type &cursor)
 

Private Attributes

native_pointer native_
 
main_pointer main_
 
native_pointer secondary_
 
std::optional< native_cursor_type > native_cursor_
 
std::optional< cola_sample_cursor< P, target_type > > primary_cursor_
 
std::optional< native_cursor_type > secondary_cursor_
 
Output output_
 
std::array< rank_groups_builder< P::group_size >, 2 > ranks_
 
std::array< std::vector< std::byte >, 2 > flags_
 
std::array< std::vector< std::uint64_t >, 2 > cuts_
 
std::array< std::uint64_t, 2 > borrowed_count_ {}
 
std::array< std::uint64_t, 2 > cut_common_ {}
 
std::array< std::uint64_t, 2 > population_ {}
 
std::array< std::uint64_t, 3 > prefixes_ {}
 
std::uint64_t previous_length_ = 0
 
std::uint64_t count_ = 0
 
std::uint64_t width_ = 0
 
bool native_equal_ = false
 
bool failed_ = false
 
bool finished_ = false
 

Member Typedef Documentation

◆ index_type

template<class P , class Native , class Main , class Output >
using everett::cola_index_builder< P, Native, Main, Output >::index_type = cola_index<P, Native, Main>

◆ main_pointer

template<class P , class Native , class Main , class Output >
using everett::cola_index_builder< P, Native, Main, Output >::main_pointer = typename index_type::main_pointer

◆ native_cursor_type

template<class P , class Native , class Main , class Output >
using everett::cola_index_builder< P, Native, Main, Output >::native_cursor_type = decltype(std::declval<Native const &>().view().cursor())
private

◆ native_pointer

template<class P , class Native , class Main , class Output >
using everett::cola_index_builder< P, Native, Main, Output >::native_pointer = typename index_type::native_pointer

◆ pair_type

template<class P , class Native , class Main , class Output >
using everett::cola_index_builder< P, Native, Main, Output >::pair_type = typename index_type::pair_type

◆ policy_type

template<class P , class Native , class Main , class Output >
using everett::cola_index_builder< P, Native, Main, Output >::policy_type = P

◆ target_type

template<class P , class Native , class Main , class Output >
using everett::cola_index_builder< P, Native, Main, Output >::target_type = typename index_type::target_type

Constructor & Destructor Documentation

◆ cola_index_builder() [1/4]

template<class P , class Native , class Main , class Output >
everett::cola_index_builder< P, Native, Main, Output >::cola_index_builder ( native_pointer  native,
main_pointer  main = {},
native_pointer  secondary = {} 
)
inlineexplicit

◆ cola_index_builder() [2/4]

template<class P , class Native , class Main , class Output >
everett::cola_index_builder< P, Native, Main, Output >::cola_index_builder ( Output  output,
native_pointer  native,
main_pointer  main = {},
native_pointer  secondary = {} 
)
inline

◆ cola_index_builder() [3/4]

template<class P , class Native , class Main , class Output >
everett::cola_index_builder< P, Native, Main, Output >::cola_index_builder ( cola_index_builder< P, Native, Main, Output > const &  )
delete

◆ cola_index_builder() [4/4]

template<class P , class Native , class Main , class Output >
everett::cola_index_builder< P, Native, Main, Output >::cola_index_builder ( cola_index_builder< P, Native, Main, Output > &&  )
default

Member Function Documentation

◆ advance_native()

template<class P , class Native , class Main , class Output >
static std::uint64_t everett::cola_index_builder< P, Native, Main, Output >::advance_native ( native_cursor_type &  cursor)
inlinestaticprivate

◆ checked()

template<class P , class Native , class Main , class Output >
static native_pointer everett::cola_index_builder< P, Native, Main, Output >::checked ( native_pointer  native)
inlinestaticprivate

◆ done()

template<class P , class Native , class Main , class Output >
bool everett::cola_index_builder< P, Native, Main, Output >::done ( ) const
inlinenoexcept

◆ failed()

template<class P , class Native , class Main , class Output >
bool everett::cola_index_builder< P, Native, Main, Output >::failed ( ) const
inlinenoexcept

◆ finish()

template<class P , class Native , class Main , class Output >
auto everett::cola_index_builder< P, Native, Main, Output >::finish ( )
inline

◆ finished()

template<class P , class Native , class Main , class Output >
bool everett::cola_index_builder< P, Native, Main, Output >::finished ( ) const
inlinenoexcept

◆ flush_group()

template<class P , class Native , class Main , class Output >
void everett::cola_index_builder< P, Native, Main, Output >::flush_group ( )
inlineprivate

◆ head()

template<class P , class Native , class Main , class Output >
bit_view everett::cola_index_builder< P, Native, Main, Output >::head ( unsigned  origin) const
inlineprivate

◆ live()

template<class P , class Native , class Main , class Output >
bool everett::cola_index_builder< P, Native, Main, Output >::live ( unsigned  origin) const
inlineprivatenoexcept

◆ main_target()

template<class P , class Native , class Main , class Output >
main_pointer everett::cola_index_builder< P, Native, Main, Output >::main_target ( ) const
inlinenoexcept

◆ native_owner()

template<class P , class Native , class Main , class Output >
native_pointer everett::cola_index_builder< P, Native, Main, Output >::native_owner ( ) const
inlinenoexcept

◆ operator=() [1/2]

template<class P , class Native , class Main , class Output >
cola_index_builder & everett::cola_index_builder< P, Native, Main, Output >::operator= ( cola_index_builder< P, Native, Main, Output > &&  )
default

◆ operator=() [2/2]

template<class P , class Native , class Main , class Output >
cola_index_builder & everett::cola_index_builder< P, Native, Main, Output >::operator= ( cola_index_builder< P, Native, Main, Output > const &  )
delete

◆ require_active()

template<class P , class Native , class Main , class Output >
void everett::cola_index_builder< P, Native, Main, Output >::require_active ( ) const
inlineprivate

◆ secondary_target()

template<class P , class Native , class Main , class Output >
native_pointer everett::cola_index_builder< P, Native, Main, Output >::secondary_target ( ) const
inlinenoexcept

◆ size()

template<class P , class Native , class Main , class Output >
std::uint64_t everett::cola_index_builder< P, Native, Main, Output >::size ( ) const
inlinenoexcept

◆ step()

template<class P , class Native , class Main , class Output >
std::uint64_t everett::cola_index_builder< P, Native, Main, Output >::step ( std::uint64_t  budget)
inline

◆ step_terminal()

template<class P , class Native , class Main , class Output >
std::uint64_t everett::cola_index_builder< P, Native, Main, Output >::step_terminal ( std::uint64_t  budget)
inlineprivate

Member Data Documentation

◆ borrowed_count_

template<class P , class Native , class Main , class Output >
std::array<std::uint64_t, 2> everett::cola_index_builder< P, Native, Main, Output >::borrowed_count_ {}
private

◆ count_

template<class P , class Native , class Main , class Output >
std::uint64_t everett::cola_index_builder< P, Native, Main, Output >::count_ = 0
private

◆ cut_common_

template<class P , class Native , class Main , class Output >
std::array<std::uint64_t, 2> everett::cola_index_builder< P, Native, Main, Output >::cut_common_ {}
private

◆ cuts_

template<class P , class Native , class Main , class Output >
std::array<std::vector<std::uint64_t>, 2> everett::cola_index_builder< P, Native, Main, Output >::cuts_
private

◆ failed_

template<class P , class Native , class Main , class Output >
bool everett::cola_index_builder< P, Native, Main, Output >::failed_ = false
private

◆ finished_

template<class P , class Native , class Main , class Output >
bool everett::cola_index_builder< P, Native, Main, Output >::finished_ = false
private

◆ flags_

template<class P , class Native , class Main , class Output >
std::array<std::vector<std::byte>, 2> everett::cola_index_builder< P, Native, Main, Output >::flags_
private

◆ main_

template<class P , class Native , class Main , class Output >
main_pointer everett::cola_index_builder< P, Native, Main, Output >::main_
private

◆ native_

template<class P , class Native , class Main , class Output >
native_pointer everett::cola_index_builder< P, Native, Main, Output >::native_
private

◆ native_cursor_

template<class P , class Native , class Main , class Output >
std::optional<native_cursor_type> everett::cola_index_builder< P, Native, Main, Output >::native_cursor_
private

◆ native_equal_

template<class P , class Native , class Main , class Output >
bool everett::cola_index_builder< P, Native, Main, Output >::native_equal_ = false
private

◆ output_

template<class P , class Native , class Main , class Output >
Output everett::cola_index_builder< P, Native, Main, Output >::output_
private

◆ population_

template<class P , class Native , class Main , class Output >
std::array<std::uint64_t, 2> everett::cola_index_builder< P, Native, Main, Output >::population_ {}
private

◆ prefixes_

template<class P , class Native , class Main , class Output >
std::array<std::uint64_t, 3> everett::cola_index_builder< P, Native, Main, Output >::prefixes_ {}
private

◆ previous_length_

template<class P , class Native , class Main , class Output >
std::uint64_t everett::cola_index_builder< P, Native, Main, Output >::previous_length_ = 0
private

◆ primary_cursor_

template<class P , class Native , class Main , class Output >
std::optional<cola_sample_cursor<P, target_type> > everett::cola_index_builder< P, Native, Main, Output >::primary_cursor_
private

◆ ranks_

template<class P , class Native , class Main , class Output >
std::array<rank_groups_builder<P::group_size>, 2> everett::cola_index_builder< P, Native, Main, Output >::ranks_
private

◆ secondary_

template<class P , class Native , class Main , class Output >
native_pointer everett::cola_index_builder< P, Native, Main, Output >::secondary_
private

◆ secondary_cursor_

template<class P , class Native , class Main , class Output >
std::optional<native_cursor_type> everett::cola_index_builder< P, Native, Main, Output >::secondary_cursor_
private

◆ width_

template<class P , class Native , class Main , class Output >
std::uint64_t everett::cola_index_builder< P, Native, Main, Output >::width_ = 0
private

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