GHC.IO.Device
| Авторские права | (c) The University of Glasgow, 1994-2008 |
|---|---|
| Лицензия | см. libraries/base/LICENSE |
| Поддерживающий | libraries@haskell.org |
| Стабильность | внутренняя |
| Переносимость | непереносимая |
| Безопасный Haskell | Надёжный |
| Язык | Haskell2010 |
Описание
Типы классов для поставщиков ввода-вывода.
class RawIO a where Исходный код
Поставщик ввода-вывода низкого уровня, где данные представлены байтами в памяти.
Методы
read :: a -> Ptr Word8 -> Int -> IO Int Исходный код
Считывает до указанного количества байтов, возвращая количество фактически считанных байтов. Эта функция должна блокироваться только если нет доступных данных. Если доступных данных недостаточно, функция просто возвращает имеющиеся данные. Значение 0 указывает на достижение конца потока данных (например, конца файла).
readNonBlocking :: a -> Ptr Word8 -> Int -> IO (Может быть Int) Исходный код
Считывает до указанного количества байтов, возвращая количество фактически считанных байтов, или Nothing если достигнут конец потока.
write :: a -> Ptr Word8 -> Int -> IO () Исходный код
Записывает указанное количество байтов.
writeNonBlocking :: a -> Ptr Word8 -> Int -> IO Int Исходный код
Записывает до указанного количества байтов без блокировки. Возвращает фактическое количество записанных байтов.
class IODevice a where Исходный код
Операции ввода-вывода, необходимые для реализации Handle.
Методы
ready :: a -> Bool -> Int -> IO Bool Исходный код
ready dev write msecs возвращает True если устройство имеет данные для чтения (если write равно False) или место для записи новых данных (если write равно True). msecs указывает время ожидания в миллисекундах.
close :: a -> IO () Исходный код
Закрывает устройство. Дальнейшие операции с устройством должны вызывать исключения.
isTerminal :: a -> IO Bool Исходный код
Возвращает True если устройство является терминалом или консолью.
isSeekable :: a -> IO Bool Исходный код
Возвращает True если устройство поддерживает операции seek.
seek :: a -> SeekMode -> Integer -> IO () Исходный код
Перемещает указатель к указанной позиции в данных.
tell :: a -> IO Integer Исходный код
Возвращает текущую позицию в данных.
getSize :: a -> IO Integer Исходный код
Возвращает размер данных.
setSize :: a -> Integer -> IO () Исходный код
Изменяет размер данных.
setEcho :: a -> Bool -> IO () Исходный код
Для терминальных устройств, изменяет отображение введённых символов на устройстве.
getEcho :: a -> IO Bool Исходный код
Возвращает текущий статус отображения символов.
setRaw :: a -> Bool -> IO () Исходный код
Некоторые устройства (например, терминалы) поддерживают режим "сырого" ввода, где введённые символы сразу становятся доступны программе. При наличии возможности, эта операция включает режим сырого ввода.
devType :: a -> IO IODeviceType Исходный код
Возвращает тип устройства, соответствующего данному устройству.
dup :: a -> IO a Исходный код
Создаёт дубликат устройства, если это возможно. Новое устройство должно использовать общий указатель файла с исходным устройством (как в Unix dup).
dup2 :: a -> a -> IO a Исходный код
dup2 source target Заменяет целевое устройство исходным устройством. Целевое устройство сначала закрывается, если необходимо, а затем становится дубликатом первого устройства (как в Unix dup2).
data IODeviceType Исходный код
Тип устройства, которое может быть использовано для поддержки Handle (см. также mkFileHandle). Стандартные библиотеки предоставляют создание Handle с помощью операций с файловыми дескрипторами в Posix (см. mkHandleFromFD) с FD как базовым экземпляром IODevice.
Пользователи могут предоставить пользовательские экземпляры IODevice, которые должны соответствовать следующим правилам:
Конструкторы
| Directory | Стандартные библиотеки не имеют прямой поддержки этого типа устройств, но пользовательская реализация должна предоставить список имён файлов в каталоге в любом порядке, разделённых символами |
| Stream | Двунаправленный канал связи (результат создания двунаправленного |
| RegularFile | Файл, который можно читать и писать, а также допускает перемещение указателя. |
| RawDevice | «Сырое» (дисковое) устройство, которое поддерживает блочные бинарные операции чтения и записи и может перемещаться только к позициям определённой чёткости (выровненным по блокам). |
Экземпляры
data SeekMode Исходный код
Режим, определяющий эффект hSeek hdl mode i.
Конструкторы
| AbsoluteSeek | позиция |
| RelativeSeek | позиция |
| SeekFromEnd | позиция |
© 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-Device.html