Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

async_read_at (4 of 4 overloads)

Boost , Boost.Asio , async_read_at

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Запуск асинхронной операции для считывания определенного количества данных при указанном смещении.

template<
    typename AsyncRandomAccessReadDevice,
    typename Allocator,
    typename CompletionCondition,
    typename ReadHandler>
void-or-deduced async_read_at(
    AsyncRandomAccessReadDevice & d,
    uint64_t offset,
    basic_streambuf< Allocator > & b,
    CompletionCondition completion_condition,
    ReadHandler handler);

Эта функция используется для асинхронного считывания определенного количества байтов данных с устройства случайного доступа при указанном смещении. Звонок функции всегда возвращается немедленно. Асинхронная операция будет продолжаться до тех пор, пока не будет выполнено одно из следующих условий:

  • Объект функции завершения_условия возвращает 0.

Эта операция реализована с точки зрения нуля или более вызовов функции async_read_some_at устройства.

Parameters

d

Устройство, с которого следует считывать данные. Этот тип должен поддерживать концепцию AsyncRandomAccessReadDevice.

offset

Смещение, при котором будут считаны данные.

b

<basic_streambuf>Объект, в который будут считаны данные. Владение Streambuf сохраняется за абонентом, который должен гарантировать, что он остается действительным до тех пор, пока не будет вызван обработчик.

completion_condition

Объект функции должен быть вызван, чтобы определить, завершена ли операция чтения. Подпись объекта функции должна быть:

std::size_t completion_condition(
  // Result of latest async_read_some_at operation.
  const boost::system::error_code& error,
  // Number of bytes transferred so far.
  std::size_t bytes_transferred
);

Обратное значение 0 означает, что операция чтения завершена. Ненулевое значение возврата указывает на максимальное количество байтов, которые будут считаны при следующем вызове функции async_read_some_at устройства.

handler

Обработчик должен быть вызван, когда операция чтения завершится. Копии будут сделаны из обработчика по мере необходимости. Функциональная подпись обработчика должна быть:

void handler(
  // Result of operation.
  const boost::system::error_code& error,
  // Number of bytes copied into the buffers. If an error
  // occurred, this will be the number of bytes successfully
  // transferred prior to the error.
  std::size_t bytes_transferred
);

Независимо от того, выполняется ли асинхронная операция немедленно или нет, обработчик не будет вызываться из этой функции. Запрос обработчика будет выполнен способом, эквивалентным использованию<boost::asio::io_service::post()>.


PrevUpHomeNext

Статья async_read_at (4 of 4 overloads) раздела Boost.Asio async_read_at может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: async_read_at ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 23:50:48/0.028006076812744/1