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

streambuf

Boost , Boost.Asio , Reference

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

Типовое использование basic_streambuf.

typedef basic_streambuf streambuf;
Types

Имя

Описание

const_buffers_type

The type used to represent the input sequence as a list of buffers.

mutable_buffers_type

The type used to represent the output sequence as a list of buffers.

Member Functions

Имя

Описание

basic_streambuf

Construct a basic_streambuf object.

commit

Move characters from the output sequence to the input sequence.

consume

Remove characters from the input sequence.

data

Get a list of buffers that represents the input sequence.

max_size

Get the maximum size of the basic_streambuf.

prepare

Get a list of buffers that represents the output sequence, with the given size.

size

Get the size of the input sequence.

Protected Member Functions

Имя

Описание

переток

Override std::streambuf behaviour.

reserve

underflow

Override std::streambuf behaviour.

Класс basic_streambuf получен из std::streambuf, чтобы связать последовательности ввода и вывода Streambuf с одним или более массивами символов. Эти массивы символов являются внутренними для объекта basic_streambuf, но прямой доступ к элементам массива обеспечивается для их эффективного использования с операциями ввода/вывода. Персонажи, записанные на выходную последовательность объекта basic_streambuf, прилагаются к входной последовательности того же объекта.

Публичный интерфейс класса basic_streambuf предназначен для реализации следующих стратегий:

  • Единый смежный массив символов, который перераспределяется по мере необходимости для учета изменений в размере последовательности символов. Именно такой подход используется в настоящее время в Asio.
  • Последовательность из одного или нескольких наборов символов, где каждый массив имеет одинаковый размер. Дополнительные объекты массива символов добавляются к последовательности, чтобы вместить изменения в размере последовательности символов.
  • Последовательность одного или нескольких наборов символов различного размера. Дополнительные объекты массива символов добавляются к последовательности, чтобы вместить изменения в размере последовательности символов.

Конструктор для basic_streambuf принимает аргумент size_t, определяющий максимальную сумму размеров входной и выходной последовательности. В течение жизни объекта basic_streambuf удерживается следующий инвариант:

size() <= max_size()

Любая функция члена, которая в случае успеха приведет к нарушению инварианта, должна включать исключение из класса std::length_error.

Конструктор для basic_streambuf принимает аргумент Аллокатора. Копия этого аргумента используется для любого распределения памяти, выполняемого конструктором и всеми функциями-членами, в течение срока службы каждого объекта basic_streambuf.

Examples

Письмо прямо из 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;
Requirements

Руководитель: boost/asio/streambuf.hpp<5

Удобный заголовок: boost/asio.hpp<5


PrevUpHomeNext

Статья streambuf раздела Boost.Asio Reference может быть полезна для разработчиков на c++ и boost.




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



:: Главная :: Reference ::


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-07-05 04:01:37/0.0040240287780762/0