Spec-Zone.ru › Haskell 9

GHC.IO.BufferedIO

Авторские права (c) Университет Глазго 2008
Лицензия см. libraries/base/LICENSE
Поддержка ghc-devs@haskell.org
Стабильность внутренняя
Переносимость непереносимая (расширения GHC)
Безопасный Haskell Безопасный
Язык Haskell2010

Описание

Класс буферизированных устройств ввода-вывода

class BufferedIO dev where Источник

Цель BufferedIO — предоставить общий интерфейс для устройств ввода-вывода, которые могут читать и записывать данные через буфер. Устройства, реализующие BufferedIO, включают обычные файлы, файлы с отображением в памяти и бистростроки. Основное устройство, реализующее Handle, должно предоставлять BufferedIO.

Минимальное полное определение

newBuffer, fillReadBuffer, fillReadBuffer0, flushWriteBuffer, flushWriteBuffer0

Методы

newBuffer :: dev -> BufferState -> IO (Buffer Word8) Источник

Выделяет новый буфер. Размер буфера зависит от устройства; например, для файла с отображением в памяти буфер, вероятно, будет охватывать весь файл.

fillReadBuffer :: dev -> Buffer Word8 -> IO (Int, Buffer Word8) Источник

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

fillReadBuffer0 :: dev -> Buffer Word8 -> IO (Maybe Int, Buffer Word8) Источник

Считывает байты в буфер без блокирования. Возвращает количество считанных байтов (Nothing указывает на конец файла) и новый буфер.

emptyWriteBuffer :: dev -> Buffer Word8 -> IO (Buffer Word8) Источник

Подготавливает пустой буфер записи. Это позволяет устройству решить, как настроить буфер записи: например, буфер может указывать на определенное место в памяти. Это обычно используется клиентом при переключении со чтения на запись на буферизованном устройстве чтения/записи.

Соответствующей операции для буферов чтения нет, потому что перед чтением клиент всегда вызывает fillReadBuffer.

flushWriteBuffer :: dev -> Buffer Word8 -> IO (Buffer Word8) Источник

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

flushWriteBuffer0 :: dev -> Buffer Word8 -> IO (Int, Buffer Word8) Источник

Выгружает данные из предоставленного буфера записи на устройство без блокировки. Возвращает количество записанных байтов и оставшийся буфер.

Примеры реализации
Подробности примеров реализации
BufferedIO FD Источник

С момента: base-4.1.0.0

Подробности примера реализации

Определено в GHC.Internal.IO.FD

Методы

newBuffer :: FD -> BufferState -> IO (Buffer Word8) Источник

fillReadBuffer :: FD -> Buffer Word8 -> IO (Int, Buffer Word8) Источник

fillReadBuffer0 :: FD -> Buffer Word8 -> IO (Maybe Int, Buffer Word8) Источник

emptyWriteBuffer :: FD -> Buffer Word8 -> IO (Buffer Word8) Источник

flushWriteBuffer :: FD -> Buffer Word8 -> IO (Buffer Word8) Источник

flushWriteBuffer0 :: FD -> Buffer Word8 -> IO (Int, Buffer Word8) Источник

readBuf :: RawIO dev => dev -> Buffer Word8 -> IO (Int, Buffer Word8) Источник

readBufNonBlocking :: RawIO dev => dev -> Buffer Word8 -> IO (Может быть Int, Buffer Word8) Исходный код

writeBuf :: RawIO dev => dev -> Buffer Word8 -> IO (Buffer Word8) Исходный код

writeBufNonBlocking :: RawIO dev => dev -> Buffer Word8 -> IO (Int, Buffer Word8) Исходный код

© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/9.12.1/docs/libraries/base-4.21.0.0-8e62/GHC-IO-BufferedIO.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API