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

#include <native_merge.h>

Public Types

using policy_type = P
 
using source_type = Native
 
using output_type = Output
 
using source_pointer = std::shared_ptr< Native const >
 

Public Member Functions

 native_merge_builder (source_pointer older, source_pointer newer, Compose compose={}, std::optional< std::uint64_t > common_value_width=P::value_width)
 
 native_merge_builder (Output output, source_pointer older, source_pointer newer, Compose compose={})
 
 native_merge_builder (native_merge_builder const &)=delete
 
native_merge_builder & operator= (native_merge_builder const &)=delete
 
 native_merge_builder (native_merge_builder &&)=default
 
native_merge_builder & operator= (native_merge_builder &&other)
 
bool done () const noexcept
 
bool failed () const noexcept
 
bool finished () const noexcept
 
native_merge_progress progress () const noexcept
 
source_pointer older_source () const noexcept
 
source_pointer newer_source () const noexcept
 
native_merge_progress step (std::uint64_t key_budget=1)
 
auto finish ()
 

Static Public Attributes

static constexpr bool encoded_keys
 

Private Types

using cursor_type = std::conditional_t< encoded_keys, native_merge_detail::encoded_source< P >, profile_cursor< P, stream_role::native > >
 

Private Member Functions

void append (cursor_type const &source, auto const &item, bit_view value, std::uint64_t retained, std::uint64_t limit_bits)
 
bit_comparison compare_heads () const
 
void require_active () const
 

Static Private Member Functions

static bit_view suffix (auto const &item, std::uint64_t retained)
 
static std::uint64_t advance (cursor_type &cursor)
 
static Output checked_output (Output output)
 
static source_pointer checked (source_pointer source)
 

Private Attributes

source_pointer older_
 
source_pointer newer_
 
cursor_type older_cursor_
 
cursor_type newer_cursor_
 
Output writer_
 
Compose compose_
 
native_merge_progress progress_
 
std::uint64_t older_prefix_ = 0
 
std::uint64_t newer_prefix_ = 0
 
bool failed_ = false
 

Member Typedef Documentation

◆ cursor_type

template<class P , class Native = profile_array<P>, class Compose = replace_native_value, class Output = profile_detail::native_output<P>>
using everett::native_merge_builder< P, Native, Compose, Output >::cursor_type = std::conditional_t<encoded_keys, native_merge_detail::encoded_source<P>, profile_cursor<P, stream_role::native> >
private

◆ output_type

template<class P , class Native = profile_array<P>, class Compose = replace_native_value, class Output = profile_detail::native_output<P>>
using everett::native_merge_builder< P, Native, Compose, Output >::output_type = Output

◆ policy_type

template<class P , class Native = profile_array<P>, class Compose = replace_native_value, class Output = profile_detail::native_output<P>>
using everett::native_merge_builder< P, Native, Compose, Output >::policy_type = P

◆ source_pointer

template<class P , class Native = profile_array<P>, class Compose = replace_native_value, class Output = profile_detail::native_output<P>>
using everett::native_merge_builder< P, Native, Compose, Output >::source_pointer = std::shared_ptr<Native const>

◆ source_type

template<class P , class Native = profile_array<P>, class Compose = replace_native_value, class Output = profile_detail::native_output<P>>
using everett::native_merge_builder< P, Native, Compose, Output >::source_type = Native

Constructor & Destructor Documentation

◆ native_merge_builder() [1/4]

template<class P , class Native = profile_array<P>, class Compose = replace_native_value, class Output = profile_detail::native_output<P>>
everett::native_merge_builder< P, Native, Compose, Output >::native_merge_builder ( source_pointer  older,
source_pointer  newer,
Compose  compose = {},
std::optional< std::uint64_t >  common_value_width = P::value_width 
)
inline

◆ native_merge_builder() [2/4]

template<class P , class Native = profile_array<P>, class Compose = replace_native_value, class Output = profile_detail::native_output<P>>
everett::native_merge_builder< P, Native, Compose, Output >::native_merge_builder ( Output  output,
source_pointer  older,
source_pointer  newer,
Compose  compose = {} 
)
inline

◆ native_merge_builder() [3/4]

template<class P , class Native = profile_array<P>, class Compose = replace_native_value, class Output = profile_detail::native_output<P>>
everett::native_merge_builder< P, Native, Compose, Output >::native_merge_builder ( native_merge_builder< P, Native, Compose, Output > const &  )
delete

◆ native_merge_builder() [4/4]

template<class P , class Native = profile_array<P>, class Compose = replace_native_value, class Output = profile_detail::native_output<P>>
everett::native_merge_builder< P, Native, Compose, Output >::native_merge_builder ( native_merge_builder< P, Native, Compose, Output > &&  )
default

Member Function Documentation

◆ advance()

template<class P , class Native = profile_array<P>, class Compose = replace_native_value, class Output = profile_detail::native_output<P>>
static std::uint64_t everett::native_merge_builder< P, Native, Compose, Output >::advance ( cursor_type &  cursor)
inlinestaticprivate

◆ append()

template<class P , class Native = profile_array<P>, class Compose = replace_native_value, class Output = profile_detail::native_output<P>>
void everett::native_merge_builder< P, Native, Compose, Output >::append ( cursor_type const &  source,
auto const &  item,
bit_view  value,
std::uint64_t  retained,
std::uint64_t  limit_bits 
)
inlineprivate

◆ checked()

template<class P , class Native = profile_array<P>, class Compose = replace_native_value, class Output = profile_detail::native_output<P>>
static source_pointer everett::native_merge_builder< P, Native, Compose, Output >::checked ( source_pointer  source)
inlinestaticprivate

◆ checked_output()

template<class P , class Native = profile_array<P>, class Compose = replace_native_value, class Output = profile_detail::native_output<P>>
static Output everett::native_merge_builder< P, Native, Compose, Output >::checked_output ( Output  output)
inlinestaticprivate

◆ compare_heads()

template<class P , class Native = profile_array<P>, class Compose = replace_native_value, class Output = profile_detail::native_output<P>>
bit_comparison everett::native_merge_builder< P, Native, Compose, Output >::compare_heads ( ) const
inlineprivate

◆ done()

template<class P , class Native = profile_array<P>, class Compose = replace_native_value, class Output = profile_detail::native_output<P>>
bool everett::native_merge_builder< P, Native, Compose, Output >::done ( ) const
inlinenoexcept

◆ failed()

template<class P , class Native = profile_array<P>, class Compose = replace_native_value, class Output = profile_detail::native_output<P>>
bool everett::native_merge_builder< P, Native, Compose, Output >::failed ( ) const
inlinenoexcept

◆ finish()

template<class P , class Native = profile_array<P>, class Compose = replace_native_value, class Output = profile_detail::native_output<P>>
auto everett::native_merge_builder< P, Native, Compose, Output >::finish ( )
inline

◆ finished()

template<class P , class Native = profile_array<P>, class Compose = replace_native_value, class Output = profile_detail::native_output<P>>
bool everett::native_merge_builder< P, Native, Compose, Output >::finished ( ) const
inlinenoexcept

◆ newer_source()

template<class P , class Native = profile_array<P>, class Compose = replace_native_value, class Output = profile_detail::native_output<P>>
source_pointer everett::native_merge_builder< P, Native, Compose, Output >::newer_source ( ) const
inlinenoexcept

◆ older_source()

template<class P , class Native = profile_array<P>, class Compose = replace_native_value, class Output = profile_detail::native_output<P>>
source_pointer everett::native_merge_builder< P, Native, Compose, Output >::older_source ( ) const
inlinenoexcept

◆ operator=() [1/2]

template<class P , class Native = profile_array<P>, class Compose = replace_native_value, class Output = profile_detail::native_output<P>>
native_merge_builder & everett::native_merge_builder< P, Native, Compose, Output >::operator= ( native_merge_builder< P, Native, Compose, Output > &&  other)
inline

◆ operator=() [2/2]

template<class P , class Native = profile_array<P>, class Compose = replace_native_value, class Output = profile_detail::native_output<P>>
native_merge_builder & everett::native_merge_builder< P, Native, Compose, Output >::operator= ( native_merge_builder< P, Native, Compose, Output > const &  )
delete

◆ progress()

template<class P , class Native = profile_array<P>, class Compose = replace_native_value, class Output = profile_detail::native_output<P>>
native_merge_progress everett::native_merge_builder< P, Native, Compose, Output >::progress ( ) const
inlinenoexcept

◆ require_active()

template<class P , class Native = profile_array<P>, class Compose = replace_native_value, class Output = profile_detail::native_output<P>>
void everett::native_merge_builder< P, Native, Compose, Output >::require_active ( ) const
inlineprivate

◆ step()

template<class P , class Native = profile_array<P>, class Compose = replace_native_value, class Output = profile_detail::native_output<P>>
native_merge_progress everett::native_merge_builder< P, Native, Compose, Output >::step ( std::uint64_t  key_budget = 1)
inline

◆ suffix()

template<class P , class Native = profile_array<P>, class Compose = replace_native_value, class Output = profile_detail::native_output<P>>
static bit_view everett::native_merge_builder< P, Native, Compose, Output >::suffix ( auto const &  item,
std::uint64_t  retained 
)
inlinestaticprivate

Member Data Documentation

◆ compose_

template<class P , class Native = profile_array<P>, class Compose = replace_native_value, class Output = profile_detail::native_output<P>>
Compose everett::native_merge_builder< P, Native, Compose, Output >::compose_
private

◆ encoded_keys

template<class P , class Native = profile_array<P>, class Compose = replace_native_value, class Output = profile_detail::native_output<P>>
constexpr bool everett::native_merge_builder< P, Native, Compose, Output >::encoded_keys
staticconstexpr
Initial value:
= std::is_same_v<Compose, replace_native_value> ||
(!std::is_invocable_v<Compose &, bit_view, bit_view, bit_view> &&
std::is_invocable_v<Compose &, bit_view, bit_view>)

◆ failed_

template<class P , class Native = profile_array<P>, class Compose = replace_native_value, class Output = profile_detail::native_output<P>>
bool everett::native_merge_builder< P, Native, Compose, Output >::failed_ = false
private

◆ newer_

template<class P , class Native = profile_array<P>, class Compose = replace_native_value, class Output = profile_detail::native_output<P>>
source_pointer everett::native_merge_builder< P, Native, Compose, Output >::newer_
private

◆ newer_cursor_

template<class P , class Native = profile_array<P>, class Compose = replace_native_value, class Output = profile_detail::native_output<P>>
cursor_type everett::native_merge_builder< P, Native, Compose, Output >::newer_cursor_
private

◆ newer_prefix_

template<class P , class Native = profile_array<P>, class Compose = replace_native_value, class Output = profile_detail::native_output<P>>
std::uint64_t everett::native_merge_builder< P, Native, Compose, Output >::newer_prefix_ = 0
private

◆ older_

template<class P , class Native = profile_array<P>, class Compose = replace_native_value, class Output = profile_detail::native_output<P>>
source_pointer everett::native_merge_builder< P, Native, Compose, Output >::older_
private

◆ older_cursor_

template<class P , class Native = profile_array<P>, class Compose = replace_native_value, class Output = profile_detail::native_output<P>>
cursor_type everett::native_merge_builder< P, Native, Compose, Output >::older_cursor_
private

◆ older_prefix_

template<class P , class Native = profile_array<P>, class Compose = replace_native_value, class Output = profile_detail::native_output<P>>
std::uint64_t everett::native_merge_builder< P, Native, Compose, Output >::older_prefix_ = 0
private

◆ progress_

template<class P , class Native = profile_array<P>, class Compose = replace_native_value, class Output = profile_detail::native_output<P>>
native_merge_progress everett::native_merge_builder< P, Native, Compose, Output >::progress_
private

◆ writer_

template<class P , class Native = profile_array<P>, class Compose = replace_native_value, class Output = profile_detail::native_output<P>>
Output everett::native_merge_builder< P, Native, Compose, Output >::writer_
private

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