Главная » Haskell » Модуль StablePtr

0

содержит определения программных сущностей, используемых для работы со стабильными указателями, то есть такими, которые не уничтожаются автоматически сборщиком мусора, равно как и не меняют своего местоположения во время процесса сборки мусора (обычные указатели могут поменять своё местоположение во время сборки мусора). Такие стабильные указатели могут использоваться во внешних программах в качестве непрозрачных ссылок на значения языка Haskell.

Предполагается, что этот модуль подключается в проект при помощи реимпорта из модуля Foreign, однако если имеется необходимость использования этого модуля отдельно, его можно подключить следующим образом:

import  Foreign.stablePtr

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

Главный тип, описываемый в этом модуле,  — StablePtr.

Тип: StablePtr

Описание: значение этого типа является стабильным указателем на область памяти, в которой содержится значение типа a.

Определение:

data  StablePtr  a = …

Для  этого типа  определены  экземпляры следующих классов:  Typeable1,

IArray, MArray, Data, Eq и Storable.

Функция: newStablePtr

Описание: создаёт новый стабильный указатель, по которому записывается заданное значение.

Определение:

newStablePtr :: a ->  IO  (StablePtr a)

Функция: deRefStablePtr

Описание: получает значение, хранящееся по адресу стабильного указателя. Если память по указателю уже высвобождена, то поведение этой ссылки не определено.

Определение:

deRefStablePtr :: StablePtr a  ->  IO a

Функция: freeStablePtr

Описание: высвобождает память из-под стабильного указателя.

Определение:

freeStablePtr :: StablePtr a  ->  IO ()

Функция: castStablePtrToPtr

Описание: преобразует стабильный указатель в обыкновенный. Функция не даёт никаких гарантий относительно результата, за исключением того, что применение к результату функции castPtrToStablePtr даст первоначальный результат. Определение:

castStablePtrToPtr :: StablePtr  a ->  Ptr   ()

Функция: castPtrToStablePtr

Описание: обращение функции castStablePtrToPtr.

Определение:

castPtrToStablePtr :: Ptr   () ->  StablePtr a

Источник: Душкин Р. В., Справочник по языку Haskell. М.: ДМК Пресс, 2008. 544 с., ил.

По теме:

  • Комментарии