![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
streambufBoost , Boost.Asio , Reference
|
Имя |
Описание |
---|---|
The type used to represent the input sequence as a list of buffers. |
|
The type used to represent the output sequence as a list of buffers. |
Имя |
Описание |
---|---|
Construct a basic_streambuf object. |
|
Move characters from the output sequence to the input sequence. |
|
Remove characters from the input sequence. |
|
Get a list of buffers that represents the input sequence. |
|
Get the maximum size of the basic_streambuf. |
|
Get a list of buffers that represents the output sequence, with the given size. |
|
Get the size of the input sequence. |
Имя |
Описание |
---|---|
Override std::streambuf behaviour. |
|
Override std::streambuf behaviour. |
Класс basic_streambuf
получен из std::streambuf
, чтобы связать последовательности ввода и вывода Streambuf с одним или более массивами символов. Эти массивы символов являются внутренними для объекта basic_streambuf
, но прямой доступ к элементам массива обеспечивается для их эффективного использования с операциями ввода/вывода. Персонажи, записанные на выходную последовательность объекта basic_streambuf
, прилагаются к входной последовательности того же объекта.
Публичный интерфейс класса basic_streambuf
предназначен для реализации следующих стратегий:
Конструктор для basic_streambuf
принимает аргумент size_t
, определяющий максимальную сумму размеров входной и выходной последовательности. В течение жизни объекта basic_streambuf
удерживается следующий инвариант:
size() <= max_size()
Любая функция члена, которая в случае успеха приведет к нарушению инварианта, должна включать исключение из класса std::length_error
.
Конструктор для basic_streambuf
принимает аргумент Аллокатора. Копия этого аргумента используется для любого распределения памяти, выполняемого конструктором и всеми функциями-членами, в течение срока службы каждого объекта basic_streambuf
.
Письмо прямо из Streambuf в розетку:
boost::asio::streambuf b; std::ostream os(&b); os << "Hello, World!\n"; // try sending some data in input sequence size_t n = sock.send(b.data()); b.consume(n); // sent data is removed from input sequence
Чтение из розетки прямо в стримбуф:
boost::asio::streambuf b; // reserve 512 bytes in output sequence boost::asio::streambuf::mutable_buffers_type bufs = b.prepare(512); size_t n = sock.receive(bufs); // received data is "committed" from output sequence to input sequence b.commit(n); std::istream is(&b); std::string s; is >> s;
Руководитель: boost/asio/streambuf.hpp<5
Удобный заголовок: boost/asio.hpp<5
Статья streambuf раздела Boost.Asio Reference может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
реклама |