Шаблон:Копирование данных с использованием потоков IInputByteStream и IOutputByteStream
Перейти к навигации
Перейти к поиску
Пример: Копирование с использованием потоков IInputByteStream и IOutputByteStream.
#include <camaas/istream.h>
#include <chsvlib/chsvmath.h>
using namespace CAMaaS;
bool copy(IInputByteStream* pFrom, IOutputByteStream* pTo)
{
const std::size_t WINDOW_SIZE = 0x1000;
std::uint8_t buf[WINDOW_SIZE];
std::uint64_t cbRead = 1;
while(cbRead != 0)
{
cbRead = WINDOW_SIZE;
std::int32_t nError = pFrom->ReadArray(buf, &cbRead);
if (nError < 0)
return false; //error
nError = pTo->WriteArray(buf, cbRead);
if (nError < 0)
return false; //error
}
return true;
}