GHC.IO.BufferedIO
| Авторские права | (c) The University of Glasgow 2008 |
|---|---|
| Лицензия | см. libraries/base/LICENSE |
| Сопровождающий | ghc-devs@haskell.org |
| Стабильность | внутренний |
| Переносимость | непереносимый (расширения GHC) |
| Безопасный Haskell | Безопасный |
| Язык | Haskell2010 |
Описание
Класс буферизованных устройств ввода-вывода
class BufferedIO dev where Источник
Назначение BufferedIO — предоставить общий интерфейс для устройств ввода-вывода, которые могут читать и записывать данные через буфер. К устройствам, реализующим BufferedIO, относятся обычные файлы, файлы, отображённые в память, и bytestrings. Базовое устройство, реализующее 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 (Maybe 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.14.1/docs/libraries/base-4.22.0.0-66f8/GHC-IO-BufferedIO.html