Spec-Zone.ru › Haskell 7

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, close, devType

Методы

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

Стандартные библиотеки не имеют прямой поддержки этого типа устройств, но пользовательская реализация должна предоставить список имён файлов в каталоге в любом порядке, разделённых символами '\0', исключая имена "." и "..". См. также getDirectoryContents. Операции сдвига не поддерживаются для каталогов (кроме нулевой позиции).

Stream

Двунаправленный канал связи (результат создания двунаправленного Handle). Стандартные библиотеки используют этот тип устройства при создании Handle для открытых сокетов.

RegularFile

Файл, который можно читать и писать, а также допускает перемещение указателя.

RawDevice

«Сырое» (дисковое) устройство, которое поддерживает блочные бинарные операции чтения и записи и может перемещаться только к позициям определённой чёткости (выровненным по блокам).

Экземпляры

Eq IODeviceType

data SeekMode Исходный код

Режим, определяющий эффект hSeek hdl mode i.

Конструкторы

AbsoluteSeek

позиция hdl устанавливается в i.

RelativeSeek

позиция hdl устанавливается в смещение i от текущей позиции.

SeekFromEnd

позиция hdl устанавливается в смещение i от конца файла.

Примеры

Enum SeekMode
Eq SeekMode
Ord SeekMode
Read SeekMode
Show SeekMode
Ix SeekMode

© 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

Spec-Zone.ru

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