Ple Read Executor#
-
class PleReadExecutor#
Fixed PLE readers with pinned scratch buffers. Borrowed file handles outlive this executor.
Public Functions
- PleReadExecutor(
- std::vector<PleFileHandle> const &files,
- size_t readerCount,
- size_t maxReadBytes
-
~PleReadExecutor() noexcept#
-
PleReadExecutor(PleReadExecutor const&) = delete#
-
PleReadExecutor &operator=(PleReadExecutor const&) = delete#
- void read(
- std::vector<PleReadRange> const &ranges,
- char *packed,
- size_t &readCalls,
- size_t &readBytes
Execute a validated plan with disjoint destinations and ranges fitting maxReadBytes. Calls are serialized by the owner. All readers finish before return or throw; counters include completed partial reads on failure.
-
struct State#
Public Functions
- inline State(
- std::vector<PleFileHandle> const &files_,
- size_t readerCount,
- size_t maxReadBytes
-
inline ~State() noexcept#
-
inline void stop() noexcept#
Public Members
-
std::vector<PleFileHandle> const files#
-
std::mutex mutex#
-
std::condition_variable ready#
-
std::condition_variable finished#
-
std::atomic<size_t> next = {}#
-
std::vector<PleReadRange> const *ranges = {}#
-
char *packed = {}#
-
size_t generation = {}#
-
size_t remaining = {}#
-
bool stopping = {}#