Everett
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Private Member Functions | Static Private Member Functions | Private Attributes | Friends | List of all members
everett::profile_view< P, Role > Struct Template Reference

#include <profile.h>

Classes

struct  shape_only
 

Public Types

using policy_type = P
 

Public Member Functions

 profile_view (std::span< std::byte const > bytes, elias_fano_view offsets, profile_metadata metadata)
 
void validate_contents () const
 
void validate_offset_metadata () const
 
std::uint64_t block_count () const noexcept
 
std::uint64_t block_offset (std::uint64_t block) const
 
std::uint64_t size () const noexcept
 
std::span< std::byte const > bytes () const noexcept
 
profile_metadata const & metadata () const noexcept
 
elias_fano_view group_offsets () const noexcept
 
profile_cursor< P, Role > cursor () const
 
profile_encoded_cursor< P, Role > encoded_cursor () const
 
profile_encoded_record encoded_at (std::uint64_t ordinal) const
 
std::uint64_t predecessor_units (std::uint64_t ordinal, profile_comparison_work *work=nullptr) const
 
template<class F >
void compare_window (std::uint64_t first, std::uint64_t last, profile_query_context< P > context, F &&callback, profile_comparison_work *work=nullptr, std::uint64_t *predecessor=nullptr) const
 
template<class F >
void visit_window (std::uint64_t first, std::uint64_t last, profile_anchor< P > anchor, std::uint64_t prefix_limit, F &&callback) const
 
template<class F >
void visit_all (F &&callback) const
 
profile_decoded_record< P > reconstruct_at (std::uint64_t ordinal, std::uint64_t prefix_limit=std::numeric_limits< std::uint64_t >::max()) const
 

Static Public Member Functions

static profile_view from_sections (std::span< std::byte const > bytes, elias_fano_view offsets, profile_metadata metadata)
 

Static Public Attributes

static constexpr stream_role role = Role
 

Private Member Functions

 profile_view (std::span< std::byte const > bytes, elias_fano_view offsets, profile_metadata metadata, shape_only)
 
std::pair< std::uint64_t, std::uint64_t > locate (std::uint64_t ordinal, profile_comparison_work *work, std::uint64_t *predecessor=nullptr) const
 
std::uint64_t read_absolute (std::uint64_t &at) const
 
profile_encoded_record parse_absolute (std::uint64_t at) const
 
profile_encoded_record parse_relative (std::uint64_t at, std::uint64_t previous) const
 
template<bool Views = true>
auto parse_payload (std::uint64_t at, std::uint64_t retained) const
 
template<class Offset >
profile_encoded_record next_record (profile_encoded_record const &previous, std::uint64_t ordinal, Offset &&offset) const
 
profile_encoded_record next_record (profile_encoded_record const &previous, std::uint64_t ordinal) const
 

Static Private Member Functions

static void decode_into (profile_encoded_record const &record, std::uint64_t limit, bit_string &scratch, std::uint64_t &context)
 

Private Attributes

std::span< std::byte const > bytes_
 
elias_fano_view offsets_
 
profile_metadata metadata_
 
bit_view data_
 

Friends

struct profile_cursor< P, Role >
 
struct profile_encoded_cursor< P, Role >
 

Member Typedef Documentation

◆ policy_type

template<class P , stream_role Role = stream_role::native>
using everett::profile_view< P, Role >::policy_type = P

Constructor & Destructor Documentation

◆ profile_view() [1/2]

template<class P , stream_role Role = stream_role::native>
everett::profile_view< P, Role >::profile_view ( std::span< std::byte const >  bytes,
elias_fano_view  offsets,
profile_metadata  metadata 
)
inline

◆ profile_view() [2/2]

template<class P , stream_role Role = stream_role::native>
everett::profile_view< P, Role >::profile_view ( std::span< std::byte const >  bytes,
elias_fano_view  offsets,
profile_metadata  metadata,
shape_only   
)
inlineprivate

Member Function Documentation

◆ block_count()

template<class P , stream_role Role = stream_role::native>
std::uint64_t everett::profile_view< P, Role >::block_count ( ) const
inlinenoexcept

◆ block_offset()

template<class P , stream_role Role = stream_role::native>
std::uint64_t everett::profile_view< P, Role >::block_offset ( std::uint64_t  block) const
inline

◆ bytes()

template<class P , stream_role Role = stream_role::native>
std::span< std::byte const > everett::profile_view< P, Role >::bytes ( ) const
inlinenoexcept

◆ compare_window()

template<class P , stream_role Role = stream_role::native>
template<class F >
void everett::profile_view< P, Role >::compare_window ( std::uint64_t  first,
std::uint64_t  last,
profile_query_context< P >  context,
F &&  callback,
profile_comparison_work *  work = nullptr,
std::uint64_t *  predecessor = nullptr 
) const
inline

◆ cursor()

template<class P , stream_role Role>
profile_cursor< P, Role > everett::profile_view< P, Role >::cursor ( ) const

◆ decode_into()

template<class P , stream_role Role = stream_role::native>
static void everett::profile_view< P, Role >::decode_into ( profile_encoded_record const &  record,
std::uint64_t  limit,
bit_string &  scratch,
std::uint64_t &  context 
)
inlinestaticprivate

◆ encoded_at()

template<class P , stream_role Role = stream_role::native>
profile_encoded_record everett::profile_view< P, Role >::encoded_at ( std::uint64_t  ordinal) const
inline

◆ encoded_cursor()

template<class P , stream_role Role>
profile_encoded_cursor< P, Role > everett::profile_view< P, Role >::encoded_cursor ( ) const

◆ from_sections()

template<class P , stream_role Role = stream_role::native>
static profile_view everett::profile_view< P, Role >::from_sections ( std::span< std::byte const >  bytes,
elias_fano_view  offsets,
profile_metadata  metadata 
)
inlinestatic

◆ group_offsets()

template<class P , stream_role Role = stream_role::native>
elias_fano_view everett::profile_view< P, Role >::group_offsets ( ) const
inlinenoexcept

◆ locate()

template<class P , stream_role Role = stream_role::native>
std::pair< std::uint64_t, std::uint64_t > everett::profile_view< P, Role >::locate ( std::uint64_t  ordinal,
profile_comparison_work *  work,
std::uint64_t *  predecessor = nullptr 
) const
inlineprivate

◆ metadata()

template<class P , stream_role Role = stream_role::native>
profile_metadata const & everett::profile_view< P, Role >::metadata ( ) const
inlinenoexcept

◆ next_record() [1/2]

template<class P , stream_role Role = stream_role::native>
profile_encoded_record everett::profile_view< P, Role >::next_record ( profile_encoded_record const &  previous,
std::uint64_t  ordinal 
) const
inlineprivate

◆ next_record() [2/2]

template<class P , stream_role Role = stream_role::native>
template<class Offset >
profile_encoded_record everett::profile_view< P, Role >::next_record ( profile_encoded_record const &  previous,
std::uint64_t  ordinal,
Offset &&  offset 
) const
inlineprivate

◆ parse_absolute()

template<class P , stream_role Role = stream_role::native>
profile_encoded_record everett::profile_view< P, Role >::parse_absolute ( std::uint64_t  at) const
inlineprivate

◆ parse_payload()

template<class P , stream_role Role = stream_role::native>
template<bool Views = true>
auto everett::profile_view< P, Role >::parse_payload ( std::uint64_t  at,
std::uint64_t  retained 
) const
inlineprivate

◆ parse_relative()

template<class P , stream_role Role = stream_role::native>
profile_encoded_record everett::profile_view< P, Role >::parse_relative ( std::uint64_t  at,
std::uint64_t  previous 
) const
inlineprivate

◆ predecessor_units()

template<class P , stream_role Role = stream_role::native>
std::uint64_t everett::profile_view< P, Role >::predecessor_units ( std::uint64_t  ordinal,
profile_comparison_work *  work = nullptr 
) const
inline

◆ read_absolute()

template<class P , stream_role Role = stream_role::native>
std::uint64_t everett::profile_view< P, Role >::read_absolute ( std::uint64_t &  at) const
inlineprivate

◆ reconstruct_at()

template<class P , stream_role Role = stream_role::native>
profile_decoded_record< P > everett::profile_view< P, Role >::reconstruct_at ( std::uint64_t  ordinal,
std::uint64_t  prefix_limit = std::numeric_limits<std::uint64_t>::max() 
) const
inline

◆ size()

template<class P , stream_role Role = stream_role::native>
std::uint64_t everett::profile_view< P, Role >::size ( ) const
inlinenoexcept

◆ validate_contents()

template<class P , stream_role Role = stream_role::native>
void everett::profile_view< P, Role >::validate_contents ( ) const
inline

◆ validate_offset_metadata()

template<class P , stream_role Role = stream_role::native>
void everett::profile_view< P, Role >::validate_offset_metadata ( ) const
inline

◆ visit_all()

template<class P , stream_role Role = stream_role::native>
template<class F >
void everett::profile_view< P, Role >::visit_all ( F &&  callback) const
inline

◆ visit_window()

template<class P , stream_role Role = stream_role::native>
template<class F >
void everett::profile_view< P, Role >::visit_window ( std::uint64_t  first,
std::uint64_t  last,
profile_anchor< P >  anchor,
std::uint64_t  prefix_limit,
F &&  callback 
) const
inline

Friends And Related Symbol Documentation

◆ profile_cursor< P, Role >

template<class P , stream_role Role = stream_role::native>
friend struct profile_cursor< P, Role >
friend

◆ profile_encoded_cursor< P, Role >

template<class P , stream_role Role = stream_role::native>
friend struct profile_encoded_cursor< P, Role >
friend

Member Data Documentation

◆ bytes_

template<class P , stream_role Role = stream_role::native>
std::span<std::byte const> everett::profile_view< P, Role >::bytes_
private

◆ data_

template<class P , stream_role Role = stream_role::native>
bit_view everett::profile_view< P, Role >::data_
private

◆ metadata_

template<class P , stream_role Role = stream_role::native>
profile_metadata everett::profile_view< P, Role >::metadata_
private

◆ offsets_

template<class P , stream_role Role = stream_role::native>
elias_fano_view everett::profile_view< P, Role >::offsets_
private

◆ role

template<class P , stream_role Role = stream_role::native>
constexpr stream_role everett::profile_view< P, Role >::role = Role
staticconstexpr

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