/
githubmirror
/
nbs
Обзор
Документация
Войти
/
githubmirror
/
nbs
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
cloud/blockstore/libs/nbd/binary_reader.cpp
40 строк
920 B
qkrorlqr
Initial NBS OpenSource export
28 апр 2023, 21:54
28 апр 2023, 21:54
783a858
Код
Авторство
О чём код?
#include "binary_reader.h" namespace NCloud::NBlockStore::NBD { //////////////////////////////////////////////////////////////////////////////// bool TBinaryReader::Read(const TSgList& dstList, size_t srcLen) { char* dst = nullptr; size_t dstLen = 0; size_t dstIndex = 0; while (srcLen) { if (!dstLen) { if (dstIndex < dstList.size()) { const auto& block = dstList[dstIndex++]; dst = (char*)block.Data(); dstLen = block.Size(); } else { // end of destination return false; } } size_t toCopy = Min(srcLen, dstLen); if (!Read(dst, toCopy)) { // end of source return false; } dst += toCopy; srcLen -= toCopy; dstLen -= toCopy; } return true; } } // namespace NCloud::NBlockStore::NBD