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

#include <profile_file_output.h>

Public Types

using policy_type = P
 

Public Member Functions

 profile_file_output (std::filesystem::path root, object_id id, object_attempt_id attempt, std::optional< std::uint64_t > common=default_width)
 
 profile_file_output (std::filesystem::path root, object_id id, object_attempt_id attempt, std::optional< std::uint64_t > common, Ops &ops)
 
 profile_file_output (profile_file_output const &)=delete
 
profile_file_output & operator= (profile_file_output const &)=delete
 
 profile_file_output (profile_file_output &&)=delete
 
profile_file_output & operator= (profile_file_output &&)=delete
 
std::uint64_t size () const noexcept
 
bool failed () const noexcept
 
bool finished () const noexcept
 
std::optional< std::uint64_t > common_value_width () const noexcept
 
object_write_paths const & paths () const &noexcept
 
object_write_paths const & paths () const &&=delete
 
void require_active () const
 
void append (std::uint64_t retained, bit_view literal, bit_view value)
 
object_seal_receipt finish ()
 
object_seal_receipt finish (index_file_sections< P > const &index)
 

Static Public Attributes

static constexpr bool borrowed = Role == stream_role::borrowed
 
static constexpr file_kind kind = borrowed ? file_kind::fractional_index : file_kind::native_blob
 
static constexpr std::size_t directory_bytes
 
static constexpr std::size_t descriptor_offset
 
static constexpr std::size_t section_count = borrowed ? 9 : 5
 
static constexpr std::optional< std::uint64_t > default_width
 

Private Member Functions

object_seal_receipt finish_impl (index_file_sections< P > const *index)
 
void validate_index (index_file_sections< P > const &index) const
 
void emit (bit_view source)
 
void emit_zeroes (std::uint64_t bits)
 
void flush_tail ()
 
void align_stream ()
 
void emit_words (std::span< std::uint64_t const > words)
 
void emit_samples (std::span< elias_fano_sample const > samples)
 

Static Private Member Functions

static std::optional< std::uint64_t > checked_width (std::optional< std::uint64_t > common)
 
static bit_string control_buffer ()
 

Private Attributes

std::optional< std::uint64_t > common_
 
bit_string control_
 
std::array< std::byte, buffer_bytes > buffer_ {}
 
std::vector< std::uint64_t > offsets_
 
object_stream< P, Ops > stream_
 
std::uint64_t buffered_bits_ = 0
 
std::uint64_t fc_bits_ = 0
 
std::uint64_t count_ = 0
 
std::uint64_t previous_units_ = 0
 
bool failed_ = false
 

Static Private Attributes

static constexpr std::size_t buffer_bytes = 64 * 1024
 

Member Typedef Documentation

◆ policy_type

template<class P , stream_role Role, class Ops = posix_object_ops>
using everett::profile_detail::profile_file_output< P, Role, Ops >::policy_type = P

Constructor & Destructor Documentation

◆ profile_file_output() [1/4]

template<class P , stream_role Role, class Ops = posix_object_ops>
everett::profile_detail::profile_file_output< P, Role, Ops >::profile_file_output ( std::filesystem::path  root,
object_id  id,
object_attempt_id  attempt,
std::optional< std::uint64_t >  common = default_width 
)
inline

◆ profile_file_output() [2/4]

template<class P , stream_role Role, class Ops = posix_object_ops>
everett::profile_detail::profile_file_output< P, Role, Ops >::profile_file_output ( std::filesystem::path  root,
object_id  id,
object_attempt_id  attempt,
std::optional< std::uint64_t >  common,
Ops &  ops 
)
inline

◆ profile_file_output() [3/4]

template<class P , stream_role Role, class Ops = posix_object_ops>
everett::profile_detail::profile_file_output< P, Role, Ops >::profile_file_output ( profile_file_output< P, Role, Ops > const &  )
delete

◆ profile_file_output() [4/4]

template<class P , stream_role Role, class Ops = posix_object_ops>
everett::profile_detail::profile_file_output< P, Role, Ops >::profile_file_output ( profile_file_output< P, Role, Ops > &&  )
delete

Member Function Documentation

◆ align_stream()

template<class P , stream_role Role, class Ops = posix_object_ops>
void everett::profile_detail::profile_file_output< P, Role, Ops >::align_stream ( )
inlineprivate

◆ append()

template<class P , stream_role Role, class Ops = posix_object_ops>
void everett::profile_detail::profile_file_output< P, Role, Ops >::append ( std::uint64_t  retained,
bit_view  literal,
bit_view  value 
)
inline

◆ checked_width()

template<class P , stream_role Role, class Ops = posix_object_ops>
static std::optional< std::uint64_t > everett::profile_detail::profile_file_output< P, Role, Ops >::checked_width ( std::optional< std::uint64_t >  common)
inlinestaticprivate

◆ common_value_width()

template<class P , stream_role Role, class Ops = posix_object_ops>
std::optional< std::uint64_t > everett::profile_detail::profile_file_output< P, Role, Ops >::common_value_width ( ) const
inlinenoexcept

◆ control_buffer()

template<class P , stream_role Role, class Ops = posix_object_ops>
static bit_string everett::profile_detail::profile_file_output< P, Role, Ops >::control_buffer ( )
inlinestaticprivate

◆ emit()

template<class P , stream_role Role, class Ops = posix_object_ops>
void everett::profile_detail::profile_file_output< P, Role, Ops >::emit ( bit_view  source)
inlineprivate

◆ emit_samples()

template<class P , stream_role Role, class Ops = posix_object_ops>
void everett::profile_detail::profile_file_output< P, Role, Ops >::emit_samples ( std::span< elias_fano_sample const >  samples)
inlineprivate

◆ emit_words()

template<class P , stream_role Role, class Ops = posix_object_ops>
void everett::profile_detail::profile_file_output< P, Role, Ops >::emit_words ( std::span< std::uint64_t const >  words)
inlineprivate

◆ emit_zeroes()

template<class P , stream_role Role, class Ops = posix_object_ops>
void everett::profile_detail::profile_file_output< P, Role, Ops >::emit_zeroes ( std::uint64_t  bits)
inlineprivate

◆ failed()

template<class P , stream_role Role, class Ops = posix_object_ops>
bool everett::profile_detail::profile_file_output< P, Role, Ops >::failed ( ) const
inlinenoexcept

◆ finish() [1/2]

template<class P , stream_role Role, class Ops = posix_object_ops>
object_seal_receipt everett::profile_detail::profile_file_output< P, Role, Ops >::finish ( )
inline

◆ finish() [2/2]

template<class P , stream_role Role, class Ops = posix_object_ops>
object_seal_receipt everett::profile_detail::profile_file_output< P, Role, Ops >::finish ( index_file_sections< P > const &  index)
inline

◆ finish_impl()

template<class P , stream_role Role, class Ops = posix_object_ops>
object_seal_receipt everett::profile_detail::profile_file_output< P, Role, Ops >::finish_impl ( index_file_sections< P > const *  index)
inlineprivate

◆ finished()

template<class P , stream_role Role, class Ops = posix_object_ops>
bool everett::profile_detail::profile_file_output< P, Role, Ops >::finished ( ) const
inlinenoexcept

◆ flush_tail()

template<class P , stream_role Role, class Ops = posix_object_ops>
void everett::profile_detail::profile_file_output< P, Role, Ops >::flush_tail ( )
inlineprivate

◆ operator=() [1/2]

template<class P , stream_role Role, class Ops = posix_object_ops>
profile_file_output & everett::profile_detail::profile_file_output< P, Role, Ops >::operator= ( profile_file_output< P, Role, Ops > &&  )
delete

◆ operator=() [2/2]

template<class P , stream_role Role, class Ops = posix_object_ops>
profile_file_output & everett::profile_detail::profile_file_output< P, Role, Ops >::operator= ( profile_file_output< P, Role, Ops > const &  )
delete

◆ paths() [1/2]

template<class P , stream_role Role, class Ops = posix_object_ops>
object_write_paths const & everett::profile_detail::profile_file_output< P, Role, Ops >::paths ( ) const &&
delete

◆ paths() [2/2]

template<class P , stream_role Role, class Ops = posix_object_ops>
object_write_paths const & everett::profile_detail::profile_file_output< P, Role, Ops >::paths ( ) const &
inlinenoexcept

◆ require_active()

template<class P , stream_role Role, class Ops = posix_object_ops>
void everett::profile_detail::profile_file_output< P, Role, Ops >::require_active ( ) const
inline

◆ size()

template<class P , stream_role Role, class Ops = posix_object_ops>
std::uint64_t everett::profile_detail::profile_file_output< P, Role, Ops >::size ( ) const
inlinenoexcept

◆ validate_index()

template<class P , stream_role Role, class Ops = posix_object_ops>
void everett::profile_detail::profile_file_output< P, Role, Ops >::validate_index ( index_file_sections< P > const &  index) const
inlineprivate

Member Data Documentation

◆ borrowed

template<class P , stream_role Role, class Ops = posix_object_ops>
constexpr bool everett::profile_detail::profile_file_output< P, Role, Ops >::borrowed = Role == stream_role::borrowed
staticconstexpr

◆ buffer_

template<class P , stream_role Role, class Ops = posix_object_ops>
std::array<std::byte, buffer_bytes> everett::profile_detail::profile_file_output< P, Role, Ops >::buffer_ {}
private

◆ buffer_bytes

template<class P , stream_role Role, class Ops = posix_object_ops>
constexpr std::size_t everett::profile_detail::profile_file_output< P, Role, Ops >::buffer_bytes = 64 * 1024
staticconstexprprivate

◆ buffered_bits_

template<class P , stream_role Role, class Ops = posix_object_ops>
std::uint64_t everett::profile_detail::profile_file_output< P, Role, Ops >::buffered_bits_ = 0
private

◆ common_

template<class P , stream_role Role, class Ops = posix_object_ops>
std::optional<std::uint64_t> everett::profile_detail::profile_file_output< P, Role, Ops >::common_
private

◆ control_

template<class P , stream_role Role, class Ops = posix_object_ops>
bit_string everett::profile_detail::profile_file_output< P, Role, Ops >::control_
private

◆ count_

template<class P , stream_role Role, class Ops = posix_object_ops>
std::uint64_t everett::profile_detail::profile_file_output< P, Role, Ops >::count_ = 0
private

◆ default_width

template<class P , stream_role Role, class Ops = posix_object_ops>
constexpr std::optional<std::uint64_t> everett::profile_detail::profile_file_output< P, Role, Ops >::default_width
staticconstexpr
Initial value:
std::optional<std::uint64_t>(0) : P::value_width
static constexpr bool borrowed
Definition profile_file_output.h:47

◆ descriptor_offset

template<class P , stream_role Role, class Ops = posix_object_ops>
constexpr std::size_t everett::profile_detail::profile_file_output< P, Role, Ops >::descriptor_offset
staticconstexpr
Initial value:
constexpr std::size_t native_descriptor_offset
Definition sections.h:44
constexpr std::size_t index_descriptor_offset
Definition sections.h:45

◆ directory_bytes

template<class P , stream_role Role, class Ops = posix_object_ops>
constexpr std::size_t everett::profile_detail::profile_file_output< P, Role, Ops >::directory_bytes
staticconstexpr
Initial value:
constexpr std::size_t native_directory_bytes
Definition sections.h:42
constexpr std::size_t index_directory_bytes
Definition sections.h:43

◆ failed_

template<class P , stream_role Role, class Ops = posix_object_ops>
bool everett::profile_detail::profile_file_output< P, Role, Ops >::failed_ = false
private

◆ fc_bits_

template<class P , stream_role Role, class Ops = posix_object_ops>
std::uint64_t everett::profile_detail::profile_file_output< P, Role, Ops >::fc_bits_ = 0
private

◆ kind

template<class P , stream_role Role, class Ops = posix_object_ops>
constexpr file_kind everett::profile_detail::profile_file_output< P, Role, Ops >::kind = borrowed ? file_kind::fractional_index : file_kind::native_blob
staticconstexpr

◆ offsets_

template<class P , stream_role Role, class Ops = posix_object_ops>
std::vector<std::uint64_t> everett::profile_detail::profile_file_output< P, Role, Ops >::offsets_
private

◆ previous_units_

template<class P , stream_role Role, class Ops = posix_object_ops>
std::uint64_t everett::profile_detail::profile_file_output< P, Role, Ops >::previous_units_ = 0
private

◆ section_count

template<class P , stream_role Role, class Ops = posix_object_ops>
constexpr std::size_t everett::profile_detail::profile_file_output< P, Role, Ops >::section_count = borrowed ? 9 : 5
staticconstexpr

◆ stream_

template<class P , stream_role Role, class Ops = posix_object_ops>
object_stream<P, Ops> everett::profile_detail::profile_file_output< P, Role, Ops >::stream_
private

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