Everett
Loading...
Searching...
No Matches
sort_profile_file_merge.h
Go to the documentation of this file.
1
12#pragma once
13
16
17namespace everett {
18 namespace sort_profile_detail {
19 template <class P, class Selector, class Ops> struct file_output_ref {
21 bool failed() const noexcept { return output->failed(); }
22 void append_frame(sort_profile_frame const & frame, std::span<bit_view const> spans, std::uint64_t common, bit_view value) {
23 output->append_frame(frame, spans, common, value);
24 }
25 auto finish() { return output->finish(); }
26 };
27 }
28 template <class P, class Native = sort_profile_array<P>, class Compose = replace_native_value,
29 class Selector = typename Native::stream_family::selector_type, class Ops = posix_object_ops>
31 using source_pointer = std::shared_ptr<Native const>;
34 sort_profile_file_merge(std::filesystem::path root, object_id id, object_attempt_id attempt,
35 source_pointer older, source_pointer newer, Compose compose = {})
36 : output_(std::move(root), std::move(id), std::move(attempt)),
37 builder_({&output_}, std::move(older), std::move(newer), std::move(compose)) {}
38 sort_profile_file_merge(std::filesystem::path root, object_id id, object_attempt_id attempt,
39 source_pointer older, source_pointer newer, Ops & ops, Compose compose = {})
40 : output_(std::move(root), std::move(id), std::move(attempt), ops),
41 builder_({&output_}, std::move(older), std::move(newer), std::move(compose)) {}
46 bool done() const noexcept { return builder_.done(); }
47 bool failed() const noexcept { return builder_.failed(); }
48 bool finished() const noexcept { return builder_.finished(); }
49 native_merge_progress progress() const noexcept { return builder_.progress(); }
50 std::uint64_t materialized_keys() const noexcept { return builder_.materialized_keys(); }
51 native_merge_progress step(std::uint64_t budget = 1) { return builder_.step(budget); }
53 object_write_paths const & paths() const & noexcept { return output_.paths(); }
54 object_write_paths const & paths() const && = delete;
55 private:
58 };
59}
Definition active_engine.h:18
Streams sort-owned KV03 payloads with bounded buffering and shared framing.
Merges sort-owned records while retaining inherited keys as borrowed spans.
Definition profile.h:56
Definition native_merge.h:148
Definition object_writer.h:39
Definition object_path.h:38
Definition object_writer.h:88
Definition object_writer.h:53
Definition sort_profile_file_merge.h:19
sort_profile_file_writer< P, Selector, Ops > * output
Definition sort_profile_file_merge.h:20
bool failed() const noexcept
Definition sort_profile_file_merge.h:21
auto finish()
Definition sort_profile_file_merge.h:25
void append_frame(sort_profile_frame const &frame, std::span< bit_view const > spans, std::uint64_t common, bit_view value)
Definition sort_profile_file_merge.h:22
Definition sort_profile_file_merge.h:30
sort_profile_file_merge(sort_profile_file_merge const &)=delete
native_merge_progress step(std::uint64_t budget=1)
Definition sort_profile_file_merge.h:51
sort_profile_file_merge & operator=(sort_profile_file_merge &&)=delete
sort_profile_file_merge(std::filesystem::path root, object_id id, object_attempt_id attempt, source_pointer older, source_pointer newer, Compose compose={})
Definition sort_profile_file_merge.h:34
object_write_paths const & paths() const &noexcept
Definition sort_profile_file_merge.h:53
native_merge_progress progress() const noexcept
Definition sort_profile_file_merge.h:49
object_write_paths const & paths() const &&=delete
bool failed() const noexcept
Definition sort_profile_file_merge.h:47
builder_type builder_
Definition sort_profile_file_merge.h:57
sort_profile_file_merge(sort_profile_file_merge &&)=delete
object_seal_receipt finish()
Definition sort_profile_file_merge.h:52
output_type output_
Definition sort_profile_file_merge.h:56
sort_profile_file_merge(std::filesystem::path root, object_id id, object_attempt_id attempt, source_pointer older, source_pointer newer, Ops &ops, Compose compose={})
Definition sort_profile_file_merge.h:38
bool done() const noexcept
Definition sort_profile_file_merge.h:46
sort_profile_file_merge & operator=(sort_profile_file_merge const &)=delete
std::shared_ptr< Native const > source_pointer
Definition sort_profile_file_merge.h:31
bool finished() const noexcept
Definition sort_profile_file_merge.h:48
std::uint64_t materialized_keys() const noexcept
Definition sort_profile_file_merge.h:50
Definition sort_profile_file_writer.h:173
void append_frame(sort_profile_frame const &frame, std::span< bit_view const > key, std::uint64_t common, bit_view value)
Definition sort_profile_file_writer.h:190
object_seal_receipt finish()
Definition sort_profile_file_writer.h:213
object_write_paths const & paths() const &noexcept
Definition sort_profile_file_writer.h:188
bool failed() const noexcept
Definition sort_profile_file_writer.h:185
Definition sort_profile.h:163
Definition sort_profile_merge.h:66
std::uint64_t materialized_keys() const noexcept
Definition sort_profile_merge.h:78
auto finish()
Definition sort_profile_merge.h:111
bool failed() const noexcept
Definition sort_profile_merge.h:75
bool done() const noexcept
Definition sort_profile_merge.h:74
native_merge_progress step(std::uint64_t budget=1)
Definition sort_profile_merge.h:79
bool finished() const noexcept
Definition sort_profile_merge.h:76
native_merge_progress progress() const noexcept
Definition sort_profile_merge.h:77