На главную
Назад | Содержание | Вперед

Пакет функций буфера (Buffer suite)

Функции буфера позволяют размещать и освобождать блоки памяти. Это избавляет от необходимости заранее вычислять необходимый размер памяти, а просто запрашивать ее по мере необходимости.

Тип BufferID (описан в модуле PIGeneral.pas):

BufferID = integer;

Функции:

BufferSpaceProc()

function BufferSpaceProc : integer; cdecl;

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

AllocateBufferProc()

function AllocateBufferProc (size      : integer;
                             var bufID : BufferID) : OSErr; cdecl;

Функция возвращает идентификатор буфера требуемого размера. При успешном размещении функция возвращает значение noErr и ошибку при неудаче.

FreeBufferProc()

procedure FreeBufferProc (bufID : BufferID); cdecl;

Функция освобождает память, используемую под буфер. Очень часто возникают ошибки при использовании идентификатора bufID после освобождения памяти.

LockBufferProc()

function LockBufferProc (bufID    : BufferID;
                         moveHigh : Boolean) : pointer; cdecl;

Функция блокирует возможные перемещения буфера в памяти и возвращает его адрес. Параметр moveHigh используется только в Mac OS и используется для перемещения буфера в старшую область памяти во избежание его фрагментации.

UnlockBufferProc()

procedure UnlockBufferProc (bufID : BufferID); cdecl;

Функция разблокирует буфер. Количество блокирований подсчитывается и, пока не будет совершено соответствующее число разблокирований, буфер не будет разблокирован.

Назад | Содержание | Вперед


© Ярослав Музыкантов muzykantov@mail.ru
При использовании материалов обязательна ссылка на сайт
students.pm.vogu35.ru/pages/pm03/mya