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

Tutorial

Boost , ,

Tutorial

2.1.1. Overview: Devices, stream_buffer and stream

Написание нового класса потокового или потокового буфера с использованием библиотеки Boost Iostreams легко: вы просто пишете класс, моделирующий концепциюУстройство, а затем используете этот класс в качестве аргумента шаблона для<stream>или.<stream_buffer>:<

#include<boost/iostreams/stream.hpp>
#include<boost/iostreams/stream_buffer.hpp>
namespaceio = boost::iostreams;
classmy_device {/* */};
typedefio::stream<my_device>         my_stream;
typedefio::stream_buffer<my_device>  my_streambuf;
>

Здесь<io::stream_buffer<my_device>>является производным классом<std::basic_streambuf>, а<io::stream<my_device>>является производным классом<std::basic_istream>,<std::basic_ostream>или<std::basic_iostream>в зависимости отрежимамоего устройства,, то есть, в зависимости от того, какая из основных операций i/o.<read>,<write>и<seek>он поддерживает.

Шаблон<io::stream>предоставляется в качестве удобства. Всегда можно избежать<io::stream>и просто использовать<io::stream_buffer>вместе с одним из стандартных шаблонов потоков библиотеки.Например,,<

#include<ostream>
#include<boost/iostreams/device/file.hpp>
#include<boost/iostreams/stream.hpp>
namespaceio = boost::iostreams;
intmain()
{
    io::stream_buffer<io::file_sink> buf("log.txt");
    std::ostream                     out(&buf);
   // out writes to log.txt
}
>

В этом примере<ostream><out>использует<stream_buffer><buf>в качестве основного поглотителя данных, так что данные, записанные на<out>, отправляются в файлlog.txt. Такой же эффект может быть достигнут путем по умолчанию построения<out>и указания ему использовать буфер потока<buf>путем вызова<out.rdbuf(&buf)>.

Другой способ определения нового класса потока или буфера потока с использованием библиотеки Boost Iostreams состоит в том, чтобы вывести из<filtering_stream>или<filtering_streambuf>.

Следующие три элемента продемонстрируют, как писать Устройства для доступа к STL-совместимым контейнерам. Исходный код для примеров можно найти в заголовке<<libs/iostreams/example/container_device.hpp>>


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




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



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


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-07-05 06:13:55/0.0034708976745605/0