![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
basic_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/basic_streambuf.hpp
>
Удобный заголовок:<boost/asio.hpp
>
Статья basic_streambuf раздела Boost.Asio Reference может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
реклама |