Электронная библиотека книг Александра Фролова и Григория Фролова.
Shop2You.ru Создайте свой интернет-магазин
Библиотека
Братьев
Фроловых

Локальные сети персональных компьютеров. Работа с сервером Novell NetWare

© Александр Фролов, Григорий Фролов
Том 4, М.: Диалог-МИФИ, 1993, 168 стр.

[Назад] [Содеожание] [Дальше]

9.8. Синхронизация процессов

Добавление файла в группу

int LogFile(char *FileName, BYTE LockDirective,WORD Timeout);


Функция возвращает 0 при успешном завершении или код ошибки.

Параметры:

FileName путь к файлу, который необходимо добавить в группу
LockDirective параметр определяет, надо ли блокировать файл сразу после его добавления в группу
Timeout период времени (в 18-х долях секунды), в течение которого файл-сервер будет ожидать, если файл нельзя заблокировать немедленно

Удаление файла из группы

int ClearFile(char *FileName);


Функция возвращает 0 при успешном завершении или код ошибки.

Параметры:

FileName путь к файлу, который необходимо удалить из группы

Удаление группы и разблокирование всех файлов

void ClearFileSet(void);


Блокирование группы файлов

int LockFileSet(WORD Timeout);


Функция возвращает 0 при успешном завершении или код ошибки.

Параметры:

Timeout период времени (в 18-х долях секунды), в течение которого файл-сервер будет ожидать, если группу файлов нельзя заблокировать немедленно

Разблокирование отдельных файлов

int ReleaseFile(char *FileName);


Функция возвращает 0 при успешном завершении или код ошибки.

Параметры:

FileName путь к файлу, который необходимо разблокировать

Разблокирование всех файлов

void  ReleaseFileSet(void);


Добавление физической записи в группу

int LogPhysicalRecord(int FileHandle, long RecordStartOffset,
    long RecordLength, BYTE LockDirective,WORD Timeout);


Функция возвращает 0 при успешном завершении или код ошибки.

Параметры:

FileHandle индекс файла, которому принадлежит блокируемая запись
RecordStartOffset смещение от начала файла
RecordLength размер блокируемой записи в байтах
LockDirective параметр определяет, надо ли блокировать запись сразу после добавления ее в группу
Timeout период времени (в 18-х долях секунды), в течении которого файл-сервер будет ожидать, если запись нельзя заблокировать немедленно

Удаление записи из группы

int ClearPhysicalRecord(int FileHandle,
    long RecordStartOffset, long RecordLength);


Функция возвращает 0 при успешном завершении или код ошибки.

Параметры:

FileHandle индекс файла, которому принадлежит запись
RecordStartOffset смещение от начала файла
RecordLength размер блокируемой записи в байтах

Разблокирование группы записей и удаление группы

void ClearPhysicalRecordSet(void);


Блокирование группы физических записей

int LockPhysicalRecordSet(BYTE LockDirective, WORD Timeout);


Функция возвращает 0 при успешном завершении или код ошибки.

Параметры:

LockDirective параметр LockDirective задает режим блокирования. Если он равен нулю, записи блокируются для монопольного использования заблокировавшей записи программой. Если параметр имеет значение единице, записи блокируются для совместного использования в режиме чтения
Timeout период времени (в 18-х долях секунды), в течение которого файл-сервер будет ожидать, если группу записей нельзя заблокировать немедленно

Разблокирование отдельных записей

int ReleasePhysicalRecord(int FileHandle,
    long RecordStartOffset, long RecordLength);


Функция возвращает 0 при успешном завершении или код ошибки.

Параметры:

FileHandle индекс файла, которому принадлежит запись
RecordStartOffset смещение от начала файла
RecordLength размер записи в байтах

Разблокирование всех физических записей

void  ReleasePhysicalRecordSet(void);


Добавление логической записи в группу

int LogLogicalRecord(char LogicalRecordName,
    BYTE LockDirective,WORD Timeout);


Функция возвращает 0 при успешном завершении или код ошибки.

Параметры:

LogicalRecordName имя логической записи, добавляемой в группу блокируемых
LockDirective параметр определяет, надо ли блокировать запись сразу после добавления ее в группу
Timeout период времени (в 18-х долях секунды), в течении которого файл-сервер будет ожидать, если запись нельзя заблокировать немедленно

Удаление логической записи из группы

int ClearLogicalRecord(char LogicalRecordName);


Функция возвращает 0 при успешном завершении или код ошибки.

Параметры:

LogicalRecordName имя логической записи

Разблокирование всех логических записей и удаление группы

void ClearLogicalRecordSet(void);


Блокирование группы логических записей

int LockLogicalRecordSet(WORD Timeout);


Функция возвращает 0 при успешном завершении или код ошибки.

Параметры:

Timeout период времени (в 18-х долях секунды), в течение которого файл-сервер будет ожидать, если группу логических записей нельзя заблокировать немедленно

Разблокирование отдельных логических записей

int ReleaseLogicalRecord(char LogicalRecordName);


Функция возвращает 0 при успешном завершении или код ошибки.

Параметры:

LogicalRecordName имя логической записи

Разблокирование всех логических записей

void  ReleaseLogicalRecordSet(void);


Открытие семафора

int OpenSemaphore(char *SemaphoreName, int InitialValue,
      long *SemaphoreHandle, WORD *OpenCount);


Функция возвращает 0 при успешном завершении или код ошибки.

Параметры:

SemaphoreName имя открываемого семафора
InitialValue значение семафора при первом открытии
SemaphoreHandle указатель на переменную, в которую будет записан индекс открытого семафора
OpenCount счетчик использования семафора

Закрытие семафора

int CloseSemaphore(long SemaphoreHandle);


Функция возвращает 0 при успешном завершении или код ошибки.

Параметры:

SemaphoreHandle индекс семафора

Определение состояния семафора

int ExamineSemaphore(long SemaphoreHandle,
      int *SemaphoreValue, WORD *OpenCount);


Функция возвращает 0 при успешном завершении или код ошибки.

Параметры:

SemaphoreHandle индекс семафора
SemaphoreValue значение семафора
OpenCount счетчик использования

Уменьшение значения семафора

int WaitOnSemaphore(long SemaphoreHandle, WORD Timeout);


Функция возвращает 0 при успешном завершении или код ошибки.

Параметры:

SemaphoreHandle индекс семафора
Timeout время, в течении которого функция ожидает доступность ресурса (в 18-х долях секунды).

Увеличение значения семафора

int SignalSemaphore(long SemaphoreHandle);


Функция возвращает 0 при успешном завершении или код ошибки.

Параметры:

SemaphoreHandle индекс семафора
[Назад] [Содеожание] [Дальше]