GHC.IO.BufferedIO
| Авторские права | (c) Университет Глазго 2008 |
|---|---|
| Лицензия | см. libraries/base/LICENSE |
| Поддерживающий | cvs-ghc@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) Исходный код
Выводит данные из предоставленного буфера записи на устройство без блокировки. Возвращает количество записанных байтов и оставшийся буфер.
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/7.10.3/docs/html/libraries/base-4.8.2.0/GHC-IO-BufferedIO.html