Everett
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
everett::sort_runtime_context< P, Selector, Ids, CatalogOps, FileOps > Struct Template Reference

#include <sort_runtime_context.h>

Inheritance diagram for everett::sort_runtime_context< P, Selector, Ids, CatalogOps, FileOps >:

Classes

struct  context_pin
 
struct  index_factory
 
struct  merge_type
 
struct  native_stream_factory
 

Public Types

using native_type = sort_runtime_native< P, Selector >
 
using native_pointer = std::shared_ptr< native_type const >
 
using catalog_type = sqlite_catalog< P, CatalogOps >
 
template<class Node >
using index_type = cola_adaptive_index_builder< P, native_type, Node, index_factory< Node >, FileOps >
 

Public Member Functions

 sort_runtime_context (sort_runtime_context const &)=delete
 
sort_runtime_context & operator= (sort_runtime_context const &)=delete
 
 sort_runtime_context (sort_runtime_context &&)=delete
 
sort_runtime_context & operator= (sort_runtime_context &&)=delete
 
bool failed () const noexcept
 
void poison () noexcept
 
std::uint64_t sealed_outputs () const noexcept
 
std::uint64_t sealed_indexes () const noexcept
 
std::uint64_t reused_outputs () const noexcept
 
void check_schema (std::string_view schema) const
 
std::size_t retained_output_bytes () const noexcept
 
std::size_t output_limit () const noexcept
 
native_pointer empty () const noexcept
 
object_id const & catalog_identity () const &noexcept
 
object_id const & catalog_identity () const &&=delete
 
std::filesystem::path const & root () const &noexcept
 
std::filesystem::path const & root () const &&=delete
 
native_pointer sorted_native (std::span< profile_record const > records)
 
template<class Compose >
auto make_merge (native_pointer older, native_pointer newer, Compose compose)
 
template<class Compose >
native_pointer reuse_merge (native_pointer const &older, native_pointer const &newer)
 
template<class Merge >
native_pointer finish_merge (Merge &merge)
 
template<class Node >
auto make_index (native_pointer native, typename Node::pair_type main, native_pointer secondary)
 
template<class Node >
Node::pair_type finish_index (index_type< Node > &index)
 

Static Public Member Functions

static std::shared_ptr< sort_runtime_context > open (std::filesystem::path const &root, Ids ids={}, catalog_options options={}, CatalogOps catalog_ops={}, FileOps file_ops={}, runtime_output_options outputs={}, std::string schema={})
 

Private Member Functions

 sort_runtime_context (catalog_type catalog, Ids ids, FileOps file_ops, runtime_output_options outputs, std::string schema)
 
template<class Compose >
std::optional< catalog_native_merge > merge_recipe (native_pointer const &older, native_pointer const &newer) const
 
std::unique_ptr< object_stream< P, FileOps > > start_native_stream ()
 
void require_active () const
 

Private Attributes

catalog_type catalog_
 
Ids ids_
 
FileOps file_ops_
 
posix_index_spool_ops spool_ops_
 
runtime_output_options outputs_
 
output_budget budget_
 
native_pointer empty_ = sort_runtime_storage<P, Selector>::empty()
 
object_id identity_
 
std::uint64_t sealed_outputs_ = 0
 
std::uint64_t sealed_indexes_ = 0
 
std::uint64_t reused_outputs_ = 0
 
std::string schema_
 
bool failed_ = false
 

Member Typedef Documentation

◆ catalog_type

template<class P , class Selector = registry_selector<typename P::registry_type>, class Ids = random_object_ids, class CatalogOps = sqlite_catalog_ops, class FileOps = posix_object_ops>
using everett::sort_runtime_context< P, Selector, Ids, CatalogOps, FileOps >::catalog_type = sqlite_catalog<P, CatalogOps>

◆ index_type

template<class P , class Selector = registry_selector<typename P::registry_type>, class Ids = random_object_ids, class CatalogOps = sqlite_catalog_ops, class FileOps = posix_object_ops>
template<class Node >
using everett::sort_runtime_context< P, Selector, Ids, CatalogOps, FileOps >::index_type = cola_adaptive_index_builder<P, native_type, Node, index_factory<Node>, FileOps>

◆ native_pointer

template<class P , class Selector = registry_selector<typename P::registry_type>, class Ids = random_object_ids, class CatalogOps = sqlite_catalog_ops, class FileOps = posix_object_ops>
using everett::sort_runtime_context< P, Selector, Ids, CatalogOps, FileOps >::native_pointer = std::shared_ptr<native_type const>

◆ native_type

template<class P , class Selector = registry_selector<typename P::registry_type>, class Ids = random_object_ids, class CatalogOps = sqlite_catalog_ops, class FileOps = posix_object_ops>
using everett::sort_runtime_context< P, Selector, Ids, CatalogOps, FileOps >::native_type = sort_runtime_native<P, Selector>

Constructor & Destructor Documentation

◆ sort_runtime_context() [1/3]

template<class P , class Selector = registry_selector<typename P::registry_type>, class Ids = random_object_ids, class CatalogOps = sqlite_catalog_ops, class FileOps = posix_object_ops>
everett::sort_runtime_context< P, Selector, Ids, CatalogOps, FileOps >::sort_runtime_context ( sort_runtime_context< P, Selector, Ids, CatalogOps, FileOps > const &  )
delete

◆ sort_runtime_context() [2/3]

template<class P , class Selector = registry_selector<typename P::registry_type>, class Ids = random_object_ids, class CatalogOps = sqlite_catalog_ops, class FileOps = posix_object_ops>
everett::sort_runtime_context< P, Selector, Ids, CatalogOps, FileOps >::sort_runtime_context ( sort_runtime_context< P, Selector, Ids, CatalogOps, FileOps > &&  )
delete

◆ sort_runtime_context() [3/3]

template<class P , class Selector = registry_selector<typename P::registry_type>, class Ids = random_object_ids, class CatalogOps = sqlite_catalog_ops, class FileOps = posix_object_ops>
everett::sort_runtime_context< P, Selector, Ids, CatalogOps, FileOps >::sort_runtime_context ( catalog_type  catalog,
Ids  ids,
FileOps  file_ops,
runtime_output_options  outputs,
std::string  schema 
)
inlineprivate

Member Function Documentation

◆ catalog_identity() [1/2]

template<class P , class Selector = registry_selector<typename P::registry_type>, class Ids = random_object_ids, class CatalogOps = sqlite_catalog_ops, class FileOps = posix_object_ops>
object_id const & everett::sort_runtime_context< P, Selector, Ids, CatalogOps, FileOps >::catalog_identity ( ) const &&
delete

◆ catalog_identity() [2/2]

template<class P , class Selector = registry_selector<typename P::registry_type>, class Ids = random_object_ids, class CatalogOps = sqlite_catalog_ops, class FileOps = posix_object_ops>
object_id const & everett::sort_runtime_context< P, Selector, Ids, CatalogOps, FileOps >::catalog_identity ( ) const &
inlinenoexcept

◆ check_schema()

template<class P , class Selector = registry_selector<typename P::registry_type>, class Ids = random_object_ids, class CatalogOps = sqlite_catalog_ops, class FileOps = posix_object_ops>
void everett::sort_runtime_context< P, Selector, Ids, CatalogOps, FileOps >::check_schema ( std::string_view  schema) const
inline

◆ empty()

template<class P , class Selector = registry_selector<typename P::registry_type>, class Ids = random_object_ids, class CatalogOps = sqlite_catalog_ops, class FileOps = posix_object_ops>
native_pointer everett::sort_runtime_context< P, Selector, Ids, CatalogOps, FileOps >::empty ( ) const
inlinenoexcept

◆ failed()

template<class P , class Selector = registry_selector<typename P::registry_type>, class Ids = random_object_ids, class CatalogOps = sqlite_catalog_ops, class FileOps = posix_object_ops>
bool everett::sort_runtime_context< P, Selector, Ids, CatalogOps, FileOps >::failed ( ) const
inlinenoexcept

◆ finish_index()

template<class P , class Selector = registry_selector<typename P::registry_type>, class Ids = random_object_ids, class CatalogOps = sqlite_catalog_ops, class FileOps = posix_object_ops>
template<class Node >
Node::pair_type everett::sort_runtime_context< P, Selector, Ids, CatalogOps, FileOps >::finish_index ( index_type< Node > &  index)
inline

◆ finish_merge()

template<class P , class Selector = registry_selector<typename P::registry_type>, class Ids = random_object_ids, class CatalogOps = sqlite_catalog_ops, class FileOps = posix_object_ops>
template<class Merge >
native_pointer everett::sort_runtime_context< P, Selector, Ids, CatalogOps, FileOps >::finish_merge ( Merge &  merge)
inline

◆ make_index()

template<class P , class Selector = registry_selector<typename P::registry_type>, class Ids = random_object_ids, class CatalogOps = sqlite_catalog_ops, class FileOps = posix_object_ops>
template<class Node >
auto everett::sort_runtime_context< P, Selector, Ids, CatalogOps, FileOps >::make_index ( native_pointer  native,
typename Node::pair_type  main,
native_pointer  secondary 
)
inline

◆ make_merge()

template<class P , class Selector = registry_selector<typename P::registry_type>, class Ids = random_object_ids, class CatalogOps = sqlite_catalog_ops, class FileOps = posix_object_ops>
template<class Compose >
auto everett::sort_runtime_context< P, Selector, Ids, CatalogOps, FileOps >::make_merge ( native_pointer  older,
native_pointer  newer,
Compose  compose 
)
inline

◆ merge_recipe()

template<class P , class Selector = registry_selector<typename P::registry_type>, class Ids = random_object_ids, class CatalogOps = sqlite_catalog_ops, class FileOps = posix_object_ops>
template<class Compose >
std::optional< catalog_native_merge > everett::sort_runtime_context< P, Selector, Ids, CatalogOps, FileOps >::merge_recipe ( native_pointer const &  older,
native_pointer const &  newer 
) const
inlineprivate

◆ open()

template<class P , class Selector = registry_selector<typename P::registry_type>, class Ids = random_object_ids, class CatalogOps = sqlite_catalog_ops, class FileOps = posix_object_ops>
static std::shared_ptr< sort_runtime_context > everett::sort_runtime_context< P, Selector, Ids, CatalogOps, FileOps >::open ( std::filesystem::path const &  root,
Ids  ids = {},
catalog_options  options = {},
CatalogOps  catalog_ops = {},
FileOps  file_ops = {},
runtime_output_options  outputs = {},
std::string  schema = {} 
)
inlinestatic

◆ operator=() [1/2]

template<class P , class Selector = registry_selector<typename P::registry_type>, class Ids = random_object_ids, class CatalogOps = sqlite_catalog_ops, class FileOps = posix_object_ops>
sort_runtime_context & everett::sort_runtime_context< P, Selector, Ids, CatalogOps, FileOps >::operator= ( sort_runtime_context< P, Selector, Ids, CatalogOps, FileOps > &&  )
delete

◆ operator=() [2/2]

template<class P , class Selector = registry_selector<typename P::registry_type>, class Ids = random_object_ids, class CatalogOps = sqlite_catalog_ops, class FileOps = posix_object_ops>
sort_runtime_context & everett::sort_runtime_context< P, Selector, Ids, CatalogOps, FileOps >::operator= ( sort_runtime_context< P, Selector, Ids, CatalogOps, FileOps > const &  )
delete

◆ output_limit()

template<class P , class Selector = registry_selector<typename P::registry_type>, class Ids = random_object_ids, class CatalogOps = sqlite_catalog_ops, class FileOps = posix_object_ops>
std::size_t everett::sort_runtime_context< P, Selector, Ids, CatalogOps, FileOps >::output_limit ( ) const
inlinenoexcept

◆ poison()

template<class P , class Selector = registry_selector<typename P::registry_type>, class Ids = random_object_ids, class CatalogOps = sqlite_catalog_ops, class FileOps = posix_object_ops>
void everett::sort_runtime_context< P, Selector, Ids, CatalogOps, FileOps >::poison ( )
inlinenoexcept

◆ require_active()

template<class P , class Selector = registry_selector<typename P::registry_type>, class Ids = random_object_ids, class CatalogOps = sqlite_catalog_ops, class FileOps = posix_object_ops>
void everett::sort_runtime_context< P, Selector, Ids, CatalogOps, FileOps >::require_active ( ) const
inlineprivate

◆ retained_output_bytes()

template<class P , class Selector = registry_selector<typename P::registry_type>, class Ids = random_object_ids, class CatalogOps = sqlite_catalog_ops, class FileOps = posix_object_ops>
std::size_t everett::sort_runtime_context< P, Selector, Ids, CatalogOps, FileOps >::retained_output_bytes ( ) const
inlinenoexcept

◆ reuse_merge()

template<class P , class Selector = registry_selector<typename P::registry_type>, class Ids = random_object_ids, class CatalogOps = sqlite_catalog_ops, class FileOps = posix_object_ops>
template<class Compose >
native_pointer everett::sort_runtime_context< P, Selector, Ids, CatalogOps, FileOps >::reuse_merge ( native_pointer const &  older,
native_pointer const &  newer 
)
inline

◆ reused_outputs()

template<class P , class Selector = registry_selector<typename P::registry_type>, class Ids = random_object_ids, class CatalogOps = sqlite_catalog_ops, class FileOps = posix_object_ops>
std::uint64_t everett::sort_runtime_context< P, Selector, Ids, CatalogOps, FileOps >::reused_outputs ( ) const
inlinenoexcept

◆ root() [1/2]

template<class P , class Selector = registry_selector<typename P::registry_type>, class Ids = random_object_ids, class CatalogOps = sqlite_catalog_ops, class FileOps = posix_object_ops>
std::filesystem::path const & everett::sort_runtime_context< P, Selector, Ids, CatalogOps, FileOps >::root ( ) const &&
delete

◆ root() [2/2]

template<class P , class Selector = registry_selector<typename P::registry_type>, class Ids = random_object_ids, class CatalogOps = sqlite_catalog_ops, class FileOps = posix_object_ops>
std::filesystem::path const & everett::sort_runtime_context< P, Selector, Ids, CatalogOps, FileOps >::root ( ) const &
inlinenoexcept

◆ sealed_indexes()

template<class P , class Selector = registry_selector<typename P::registry_type>, class Ids = random_object_ids, class CatalogOps = sqlite_catalog_ops, class FileOps = posix_object_ops>
std::uint64_t everett::sort_runtime_context< P, Selector, Ids, CatalogOps, FileOps >::sealed_indexes ( ) const
inlinenoexcept

◆ sealed_outputs()

template<class P , class Selector = registry_selector<typename P::registry_type>, class Ids = random_object_ids, class CatalogOps = sqlite_catalog_ops, class FileOps = posix_object_ops>
std::uint64_t everett::sort_runtime_context< P, Selector, Ids, CatalogOps, FileOps >::sealed_outputs ( ) const
inlinenoexcept

◆ sorted_native()

template<class P , class Selector = registry_selector<typename P::registry_type>, class Ids = random_object_ids, class CatalogOps = sqlite_catalog_ops, class FileOps = posix_object_ops>
native_pointer everett::sort_runtime_context< P, Selector, Ids, CatalogOps, FileOps >::sorted_native ( std::span< profile_record const >  records)
inline

◆ start_native_stream()

template<class P , class Selector = registry_selector<typename P::registry_type>, class Ids = random_object_ids, class CatalogOps = sqlite_catalog_ops, class FileOps = posix_object_ops>
std::unique_ptr< object_stream< P, FileOps > > everett::sort_runtime_context< P, Selector, Ids, CatalogOps, FileOps >::start_native_stream ( )
inlineprivate

Member Data Documentation

◆ budget_

template<class P , class Selector = registry_selector<typename P::registry_type>, class Ids = random_object_ids, class CatalogOps = sqlite_catalog_ops, class FileOps = posix_object_ops>
output_budget everett::sort_runtime_context< P, Selector, Ids, CatalogOps, FileOps >::budget_
private

◆ catalog_

template<class P , class Selector = registry_selector<typename P::registry_type>, class Ids = random_object_ids, class CatalogOps = sqlite_catalog_ops, class FileOps = posix_object_ops>
catalog_type everett::sort_runtime_context< P, Selector, Ids, CatalogOps, FileOps >::catalog_
private

◆ empty_

template<class P , class Selector = registry_selector<typename P::registry_type>, class Ids = random_object_ids, class CatalogOps = sqlite_catalog_ops, class FileOps = posix_object_ops>
native_pointer everett::sort_runtime_context< P, Selector, Ids, CatalogOps, FileOps >::empty_ = sort_runtime_storage<P, Selector>::empty()
private

◆ failed_

template<class P , class Selector = registry_selector<typename P::registry_type>, class Ids = random_object_ids, class CatalogOps = sqlite_catalog_ops, class FileOps = posix_object_ops>
bool everett::sort_runtime_context< P, Selector, Ids, CatalogOps, FileOps >::failed_ = false
private

◆ file_ops_

template<class P , class Selector = registry_selector<typename P::registry_type>, class Ids = random_object_ids, class CatalogOps = sqlite_catalog_ops, class FileOps = posix_object_ops>
FileOps everett::sort_runtime_context< P, Selector, Ids, CatalogOps, FileOps >::file_ops_
private

◆ identity_

template<class P , class Selector = registry_selector<typename P::registry_type>, class Ids = random_object_ids, class CatalogOps = sqlite_catalog_ops, class FileOps = posix_object_ops>
object_id everett::sort_runtime_context< P, Selector, Ids, CatalogOps, FileOps >::identity_
private

◆ ids_

template<class P , class Selector = registry_selector<typename P::registry_type>, class Ids = random_object_ids, class CatalogOps = sqlite_catalog_ops, class FileOps = posix_object_ops>
Ids everett::sort_runtime_context< P, Selector, Ids, CatalogOps, FileOps >::ids_
private

◆ outputs_

template<class P , class Selector = registry_selector<typename P::registry_type>, class Ids = random_object_ids, class CatalogOps = sqlite_catalog_ops, class FileOps = posix_object_ops>
runtime_output_options everett::sort_runtime_context< P, Selector, Ids, CatalogOps, FileOps >::outputs_
private

◆ reused_outputs_

template<class P , class Selector = registry_selector<typename P::registry_type>, class Ids = random_object_ids, class CatalogOps = sqlite_catalog_ops, class FileOps = posix_object_ops>
std::uint64_t everett::sort_runtime_context< P, Selector, Ids, CatalogOps, FileOps >::reused_outputs_ = 0
private

◆ schema_

template<class P , class Selector = registry_selector<typename P::registry_type>, class Ids = random_object_ids, class CatalogOps = sqlite_catalog_ops, class FileOps = posix_object_ops>
std::string everett::sort_runtime_context< P, Selector, Ids, CatalogOps, FileOps >::schema_
private

◆ sealed_indexes_

template<class P , class Selector = registry_selector<typename P::registry_type>, class Ids = random_object_ids, class CatalogOps = sqlite_catalog_ops, class FileOps = posix_object_ops>
std::uint64_t everett::sort_runtime_context< P, Selector, Ids, CatalogOps, FileOps >::sealed_indexes_ = 0
private

◆ sealed_outputs_

template<class P , class Selector = registry_selector<typename P::registry_type>, class Ids = random_object_ids, class CatalogOps = sqlite_catalog_ops, class FileOps = posix_object_ops>
std::uint64_t everett::sort_runtime_context< P, Selector, Ids, CatalogOps, FileOps >::sealed_outputs_ = 0
private

◆ spool_ops_

template<class P , class Selector = registry_selector<typename P::registry_type>, class Ids = random_object_ids, class CatalogOps = sqlite_catalog_ops, class FileOps = posix_object_ops>
posix_index_spool_ops everett::sort_runtime_context< P, Selector, Ids, CatalogOps, FileOps >::spool_ops_
private

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