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

#include <object_stream.h>

Public Types

using policy_type = P
 

Public Member Functions

 object_stream (std::filesystem::path root, object_id id, object_attempt_id attempt, file_kind kind, std::size_t prefix_bytes=0)
 
 object_stream (std::filesystem::path root, object_id id, object_attempt_id attempt, file_kind kind, Ops &ops)
 
 object_stream (std::filesystem::path root, object_id id, object_attempt_id attempt, file_kind kind, std::size_t prefix_bytes, Ops &ops)
 
 object_stream (object_stream const &)=delete
 
object_stream & operator= (object_stream const &)=delete
 
 object_stream (object_stream &&)=delete
 
object_stream & operator= (object_stream &&)=delete
 
std::uint64_t body_bytes () const noexcept
 
std::uint32_t body_crc32c () const noexcept
 
bool failed () const noexcept
 
bool finished () const noexcept
 
object_write_paths const & paths () const &noexcept
 
object_write_paths const & paths () const &&=delete
 
void append (std::span< std::byte const > bytes)
 
object_seal_receipt finish (file_header< P > const &header)
 
object_seal_receipt finish (file_header< P > const &header, std::span< std::byte const > prefix)
 

Private Member Functions

void open ()
 
void require_active () const
 

Static Private Member Functions

static std::size_t checked_prefix (std::size_t bytes)
 
static file_kind checked (file_kind kind)
 

Private Attributes

std::filesystem::path root_
 
object_id id_
 
object_attempt_id attempt_
 
file_kind kind_
 
std::size_t prefix_bytes_ = 0
 
std::optional< Ops > owned_ops_
 
Ops & ops_
 
object_writer< P, Ops >::operation run_
 
std::uint64_t body_bytes_ = 0
 
std::uint32_t crc_ = 0
 
std::uint32_t prefix_crc_ = 0
 
std::byte last_ {}
 
bool failed_ = false
 
bool finished_ = false
 

Member Typedef Documentation

◆ policy_type

template<class P , class Ops = posix_object_ops>
using everett::object_stream< P, Ops >::policy_type = P

Constructor & Destructor Documentation

◆ object_stream() [1/5]

template<class P , class Ops = posix_object_ops>
everett::object_stream< P, Ops >::object_stream ( std::filesystem::path  root,
object_id  id,
object_attempt_id  attempt,
file_kind  kind,
std::size_t  prefix_bytes = 0 
)
inline

◆ object_stream() [2/5]

template<class P , class Ops = posix_object_ops>
everett::object_stream< P, Ops >::object_stream ( std::filesystem::path  root,
object_id  id,
object_attempt_id  attempt,
file_kind  kind,
Ops &  ops 
)
inline

◆ object_stream() [3/5]

template<class P , class Ops = posix_object_ops>
everett::object_stream< P, Ops >::object_stream ( std::filesystem::path  root,
object_id  id,
object_attempt_id  attempt,
file_kind  kind,
std::size_t  prefix_bytes,
Ops &  ops 
)
inline

◆ object_stream() [4/5]

template<class P , class Ops = posix_object_ops>
everett::object_stream< P, Ops >::object_stream ( object_stream< P, Ops > const &  )
delete

◆ object_stream() [5/5]

template<class P , class Ops = posix_object_ops>
everett::object_stream< P, Ops >::object_stream ( object_stream< P, Ops > &&  )
delete

Member Function Documentation

◆ append()

template<class P , class Ops = posix_object_ops>
void everett::object_stream< P, Ops >::append ( std::span< std::byte const >  bytes)
inline

◆ body_bytes()

template<class P , class Ops = posix_object_ops>
std::uint64_t everett::object_stream< P, Ops >::body_bytes ( ) const
inlinenoexcept

◆ body_crc32c()

template<class P , class Ops = posix_object_ops>
std::uint32_t everett::object_stream< P, Ops >::body_crc32c ( ) const
inlinenoexcept

◆ checked()

template<class P , class Ops = posix_object_ops>
static file_kind everett::object_stream< P, Ops >::checked ( file_kind  kind)
inlinestaticprivate

◆ checked_prefix()

template<class P , class Ops = posix_object_ops>
static std::size_t everett::object_stream< P, Ops >::checked_prefix ( std::size_t  bytes)
inlinestaticprivate

◆ failed()

template<class P , class Ops = posix_object_ops>
bool everett::object_stream< P, Ops >::failed ( ) const
inlinenoexcept

◆ finish() [1/2]

template<class P , class Ops = posix_object_ops>
object_seal_receipt everett::object_stream< P, Ops >::finish ( file_header< P > const &  header)
inline

◆ finish() [2/2]

template<class P , class Ops = posix_object_ops>
object_seal_receipt everett::object_stream< P, Ops >::finish ( file_header< P > const &  header,
std::span< std::byte const >  prefix 
)
inline

◆ finished()

template<class P , class Ops = posix_object_ops>
bool everett::object_stream< P, Ops >::finished ( ) const
inlinenoexcept

◆ open()

template<class P , class Ops = posix_object_ops>
void everett::object_stream< P, Ops >::open ( )
inlineprivate

◆ operator=() [1/2]

template<class P , class Ops = posix_object_ops>
object_stream & everett::object_stream< P, Ops >::operator= ( object_stream< P, Ops > &&  )
delete

◆ operator=() [2/2]

template<class P , class Ops = posix_object_ops>
object_stream & everett::object_stream< P, Ops >::operator= ( object_stream< P, Ops > const &  )
delete

◆ paths() [1/2]

template<class P , class Ops = posix_object_ops>
object_write_paths const & everett::object_stream< P, Ops >::paths ( ) const &&
delete

◆ paths() [2/2]

template<class P , class Ops = posix_object_ops>
object_write_paths const & everett::object_stream< P, Ops >::paths ( ) const &
inlinenoexcept

◆ require_active()

template<class P , class Ops = posix_object_ops>
void everett::object_stream< P, Ops >::require_active ( ) const
inlineprivate

Member Data Documentation

◆ attempt_

template<class P , class Ops = posix_object_ops>
object_attempt_id everett::object_stream< P, Ops >::attempt_
private

◆ body_bytes_

template<class P , class Ops = posix_object_ops>
std::uint64_t everett::object_stream< P, Ops >::body_bytes_ = 0
private

◆ crc_

template<class P , class Ops = posix_object_ops>
std::uint32_t everett::object_stream< P, Ops >::crc_ = 0
private

◆ failed_

template<class P , class Ops = posix_object_ops>
bool everett::object_stream< P, Ops >::failed_ = false
private

◆ finished_

template<class P , class Ops = posix_object_ops>
bool everett::object_stream< P, Ops >::finished_ = false
private

◆ id_

template<class P , class Ops = posix_object_ops>
object_id everett::object_stream< P, Ops >::id_
private

◆ kind_

template<class P , class Ops = posix_object_ops>
file_kind everett::object_stream< P, Ops >::kind_
private

◆ last_

template<class P , class Ops = posix_object_ops>
std::byte everett::object_stream< P, Ops >::last_ {}
private

◆ ops_

template<class P , class Ops = posix_object_ops>
Ops& everett::object_stream< P, Ops >::ops_
private

◆ owned_ops_

template<class P , class Ops = posix_object_ops>
std::optional<Ops> everett::object_stream< P, Ops >::owned_ops_
private

◆ prefix_bytes_

template<class P , class Ops = posix_object_ops>
std::size_t everett::object_stream< P, Ops >::prefix_bytes_ = 0
private

◆ prefix_crc_

template<class P , class Ops = posix_object_ops>
std::uint32_t everett::object_stream< P, Ops >::prefix_crc_ = 0
private

◆ root_

template<class P , class Ops = posix_object_ops>
std::filesystem::path everett::object_stream< P, Ops >::root_
private

◆ run_

template<class P , class Ops = posix_object_ops>
object_writer<P,Ops>::operation everett::object_stream< P, Ops >::run_
private

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