MCPcopy Create free account
hub / github.com/OpenStarbound/OpenStarbound / rawReadBlock

Method rawReadBlock

source/core/StarBTreeDatabase.cpp:894–905  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

892}
893
894void BTreeDatabase::rawReadBlock(BlockIndex blockIndex, size_t blockOffset, char* block, size_t size) const {
895 if (blockOffset > m_blockSize || size > m_blockSize - blockOffset)
896 throw DBException::format("Read past end of block, offset: {} size {}", blockOffset, size);
897
898 if (size <= 0)
899 return;
900
901 if (auto buffer = m_uncommittedWrites.ptr(blockIndex))
902 buffer->copyTo(block, blockOffset, size);
903 else
904 m_device->readFullAbsolute(HeaderSize + blockIndex * (StreamOffset)m_blockSize + blockOffset, block, size);
905}
906
907void BTreeDatabase::rawWriteBlock(BlockIndex blockIndex, size_t blockOffset, char const* block, size_t size) {
908 if (blockOffset > m_blockSize || size > m_blockSize - blockOffset)

Callers

nothing calls this directly

Calls 4

copyToMethod · 0.80
readFullAbsoluteMethod · 0.80
formatFunction · 0.70
ptrMethod · 0.45

Tested by

no test coverage detected