IInputByteStream

Материал из CAMaaS preliminary wiki
Перейти к навигации Перейти к поиску

Интерфейс реализации входного потока байт.

Методы, наследуемые от InterfaceBase.

Release Закрывает текущий экземпляр, реализующий интерфейс.

Методы, наследуемые от IStream.

IsInterfaceAvailable Проверяет поддержку интерфейса, заданного идентификатором, текущей реализацией.
RepresentAs Создает представление реализации в виде интерфейса, заданного идентификатором.
AddRef Инкрементирует счетчик ссылок на реализацию потока.

Методы, наследуемые от IInputStream.

Read Считывает из потока один элемент.

Собственные методы.

ReadArray Считывает из потока массив байт.

Пример использования.

Ниже приведен пример функции, копирующей данные из входного потока в выходной.

bool copy(IInputByteStream* pFrom, IOutputByteStream* pTo)
{
   const std::size_t WINDOW_SIZE = 0x1000;
   std::uint8_t buf[WINDOW_SIZE];
   std::uint64_t cbRead = 1;
   do
   {
      cbRead = WINDOW_SIZE;
      std::int32_t nError = pFrom->ReadArray(buf, std::addressof(cbRead));
      if (nError < 0)
         return false; //error
      nError = pTo->WriteArray(buf, cbRead);
      if (nError < 0)
         return false; //error
   } while (cbRead != 0);
   return true; //done
}