Поделиться через


Класс basic_streambuf

Описывает абстрактный базовый класс для производной буфер потока, элементы управления и элементов и наоборот конкретного представления потока.

template<class Elem, class Tr = char_traits<Elem> >
   class basic_streambuf;

Параметры

Заметки

Описание класса шаблона абстрактный базовый класс для производной буфер потока, элементы управления и элементов и наоборот конкретного представления потока. Объект класса basic_streambuf позволяет элементу управления поток с элементы типа Tr, также известные как char_type, в котором определяются характеристики символов класса char_traits, также известного как traits_type.

Управления каждого буфера потока по существу 2 независимых потока: одно для извлечений (ввода), а другой для вставки (output). Конкретное представление может, тем не менее, выполнить одно или оба этих потоков труднопоступных. Обычно он поддерживает некоторую связь между 2 потоков. Что вставке в поток вывода basic_stringbuf<Elem, объекта Tr>, например, что имеется более современную извлечь его из входного потока. При размещении один поток basic_filebuf<Elem, объекта Tr>, необходимо навести другой поток в тандеме.

Открытый интерфейс указываются в basic_streambuf класса шаблона операции, которые используются на любой поток буферизации, как бы специализированный. Защищенные указываются операции интерфейса был нужен для конкретного представления задачи потока свою работу. Защищенные виртуальные функции-члена позволяют настраивать расширение функциональности производного буфера потока для конкретного представления потока. Каждый производный буфер потока в этой библиотеке описание их специализирует расширение функциональности его защищенных виртуальных функции-члена. Реакция на событие по умолчанию для базового класса, который часто задачи ничего, описанные в этом разделе.

Оставшиеся — управление функции-члены копирования и наоборот любого хранилища поставило буфера для передачи и наоборот потоков. Буфер ввода, например, охарактеризован следующими способами:

  • eback, указатель на начало буфера.

  • gptr указатель, к следующему элементу, предназначенного для чтения.

  • egptr после указателя, сразу после конца буфера.

Аналогично, буфер вывода охарактеризован следующими способами:

  • pbase, указатель на начало буфера.

  • pptr, указатель на следующий элемент, который требуется записать.

  • epptr после указателя, сразу после конца буфера.

Для любого буфера, следующий протокол используется:

  • Если следующий указатель NULL, ни буфер не существует. В противном случае все 3 указателя указывают в одну последовательность. Их можно безопасно сравнения для заказа.

  • Для буфера вывода, если следующий указатель сравнивает меньше указанного указателя, можно магазин элемент в позиции записи обозначил следующим указателем.

  • Для ввода буфера, если следующий указатель сравнивает меньше указанного указателя, можно прочитать элемент в прочитанной позиции заданной следующим указателем.

  • Для ввода буфера, если указатель начала сравнения, чем следующего указателя, можно поместить элементу обратно в позиции putback обозначенную декрементированным следующим указателем.

Все защищенные виртуальные функции-члена, созданный для класса, производного от basic_streambuf<Elem, Tr> необходимо объединить в поддержании этого протокола.

Объект класса basic_streambuf<Elem, Tr> хранит 6 ранее описанных указателей. Он также содержит объект языкового стандарта в объекте типа locale для возможного использования производным буфер потока.

конструкторов;

basic_streambuf

Создает объект типа basic_streambuf.

Определения типов

char_type

Связывает имя с параметром типа шаблона Elem.

int_type

Сопоставляет имя типа в области basic_streambuf с параметром шаблона Elem.

off_type

Сопоставляет имя типа в области basic_streambuf с параметром шаблона Elem.

pos_type

Сопоставляет имя типа в области basic_streambuf с параметром шаблона Elem.

traits_type

Связывает имя с параметром типа шаблона Tr.

Функции-члены

eback

Защищенная функция, которая возвращает указатель на начало буфера.

egptr

Защищенную функцию, возвращающую за указателя сразу после конца буфера.

epptr

Защищенную функцию, возвращающую за указателя сразу после конца буфера.

gbump

Защищенная функция, которая добавляет _Count следующему указатель для буфера.

getloc

Получает языковой стандарт объекта basic_streambuf.

gptr

Защищенная функции, возвращающей указатель к следующему элементу буфера.

вдохновите

Защищенная, виртуальная функция — pubimbue.

in_avail

Возвращает количество элементов, которые готовы к чтению из буфера.

переполнение

Защищенная виртуальная функция, могут вызывать при новый символ вставляется в полный буфер.

pbackfail

Защищенная виртуальная функция-член, пытается перейти обратно в элемент входной поток и делает его текущего элемента (указанный следующему указателю).

pbase

Защищенная функция, которая возвращает указатель на начало буфера вывода.

pbump

Защищенная функция, которая добавляет count следующему указатель для буфера вывода.

pptr

Защищенная функции, возвращающей указатель к следующему элементу буфера вывода.

pubimbue

Задает языковой стандарт объекта basic_streambuf.

pubseekoff

Вызывает seekoff, защищенная виртуальная функция, переопределена в производном классе.

pubseekpos

Вызывает seekpos, защищенная виртуальная функция, переопределена в производном классе и сбросит текущее положение указателя.

pubsetbuf

Вызывает setbuf, защищенная виртуальная функция, переопределена в производном классе.

pubsync

Вызывает синхронизация, защищенная виртуальная функция, переопределена в производном классе и обновляет внешний поток, связанный с данным буфером.

sbumpc

Считывает и возвращает указатель на текущий элемент, потока.

seekoff

Защищенная виртуальная функция-член пытается изменить текущие позиции для управляемых потоков.

seekpos

Защищенная виртуальная функция-член пытается изменить текущие позиции для управляемых потоков.

setbuf

Защищенная виртуальная функция-член частность выполняет операции в каждый производный буфер потока.

setg

Защищенная функция, которая хранит _Gbeg в указателе начала, _Gnext в следующем указателей и указателей _Gend в конце для буфера.

setp

Защищенная функция, которая хранит _Pbeg в указателе начала и указателей _Pend в конце для буфера вывода.

sgetc

Возвращает текущий элемент, не изменяя положение в потоке.

sgetn

Возвращает количество прочитанных элементов.

showmanyc

Защищенная виртуальная функция-член, возвращается число символов, можно извлечь из входного потока и убедиться, что программа не подлежит неограниченное время ожидания.

snextc

Считывает текущий элемент и возвращает следующий элемент.

sputbackc

Помещает char_type в поток.

sputc

Помещает символ в поток.

sputn

Помещает символьную строку в поток.

stossc

Переместить за элементом в текущего потока.

sungetc

Получает символ из потока.

буфер обмена

Меняет местами значения в этом объекте для значений объекта, заданного в параметре basic_streambuf.

синхронизация

Защищенная виртуальная функция, пытается синхронизировать, управляемые потоки со всеми связанными внешними потоками.

uflow

Защищенная виртуальная функция, извлекающий текущий элемент из входного потока.

потеря значимости

Защищенная виртуальная функция, извлекающий текущий элемент из входного потока.

xsgetn

Защищенная виртуальная функция, которая извлекает элементы входного потока.

xsputn

Защищенная виртуальная функция, добавляет элементы в поток вывода.

Операторы

operator=

Присвоить значения данного объекта из другого объекта basic_streambuf.

Требования

Заголовок:<streambuf>

Пространство имен: std

См. также

Ссылки

Потокобезопасность в стандартной библиотеке C++

Программирование iostream

Соглашения iostreams

Другие ресурсы

члены basic_streambuf

члены<streambuf>