MCPcopy Create free account
hub / github.com/LadybugDB/ladybug / WriteIterator

Class WriteIterator

src/include/storage/disk_array.h:308–337  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

306 inline std::vector<PageRange> getPageRanges() const { return diskArray.getPageRanges(); }
307
308 class WriteIterator {
309 public:
310 explicit WriteIterator(DiskArrayInternal::WriteIterator&& iter) : iter(std::move(iter)) {}
311 inline U& operator*() { return *reinterpret_cast<U*>((*iter).data()); }
312 DELETE_COPY_DEFAULT_MOVE(WriteIterator);
313
314 inline WriteIterator& operator+=(size_t dist) {
315 iter += dist;
316 return *this;
317 }
318
319 inline WriteIterator& seek(size_t idx) {
320 iter.seek(idx);
321 return *this;
322 }
323
324 inline uint64_t idx() const { return iter.idx; }
325 inline uint64_t getAPIdx() const { return iter.apCursor.pageIdx; }
326
327 inline WriteIterator& pushBack(PageAllocator& pageAllocator,
328 const transaction::Transaction* transaction, U val) {
329 iter.pushBack(pageAllocator, transaction, getSpan(val));
330 return *this;
331 }
332
333 inline uint64_t size() const { return iter.size(); }
334
335 private:
336 DiskArrayInternal::WriteIterator iter;
337 };
338
339 inline WriteIterator iter_mut() { return WriteIterator{diskArray.iter_mut(sizeof(U))}; }
340 inline uint64_t getAPIdx(uint64_t idx) const { return diskArray.getAPIdx(idx); }

Callers 1

iter_mutMethod · 0.50

Calls 4

getSpanFunction · 0.85
pushBackMethod · 0.80
dataMethod · 0.45
seekMethod · 0.45

Tested by

no test coverage detected