![]() |
![]() ![]() ![]() ![]() |
![]() |
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.
реклама |