33#ifndef PINEFORGE_DETAIL_O1_STORE_HPP
34#define PINEFORGE_DETAIL_O1_STORE_HPP
46using Id = std::uint64_t;
109 virtual Id create(std::uint64_t bytes, std::uint64_t align) = 0;
112 virtual std::uint64_t
size(
Id)
const = 0;
121 virtual std::size_t
read(
Id, std::uint64_t off,
void* dst, std::size_t n)
const = 0;
122 virtual std::size_t
write(
Id, std::uint64_t off,
const void* src, std::size_t n) = 0;
126 virtual std::unique_ptr<Tx>
begin() = 0;
virtual Stats stats() const =0
virtual std::size_t write(Id, std::uint64_t off, const void *src, std::size_t n)=0
virtual std::unique_ptr< Tx > begin()=0
virtual std::uint64_t size(Id) const =0
virtual std::size_t read(Id, std::uint64_t off, void *dst, std::size_t n) const =0
virtual bool alive(Id) const =0
virtual bool resize(Id, std::uint64_t bytes)=0
static std::unique_ptr< Store > open(const Shape &, ScratchBacking &)
virtual Id create(std::uint64_t bytes, std::uint64_t align)=0
virtual void release(Id)=0
virtual void rollback()=0
constexpr std::uint32_t kMaxResidentPages
constexpr std::uint32_t kMaxChunkBytes
std::uint32_t journal_slots
std::uint32_t chunk_bytes
std::uint32_t resident_pages
std::uint32_t index_slots
std::uint64_t bytes_backing
std::uint64_t pages_spilled
std::uint64_t bytes_resident