Класс Cntm::SpecUtils::SysSignalFlag
[Cntm.SystemUtils]

Полный список членов класса


Подробное описание

Реализация сигнального флага.

Он имеет 2 состояния сигнальное (установленное) и несигнальное (сброшенное).

Когда флаг находится в несигнальном состоянии, то потоки, вызывающие функцию Wait() переводятся в ожидающее состояние. Когда флаг переходит в сигнальное состояние, ожидание завершается. Если флаг на момент входа в Wait находился в сигнальном состоянии, то ожидание не производится.

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

Автор:
Овсеевич Р.

См. определение в файле SysSignalFlag.h строка 36


Открытые члены

 SysSignalFlag (bool AutoReset=true, bool Init=false)
 Конструктор.
 ~SysSignalFlag ()
 Деструктор.
bool Wait (bool Infinite, uint MSecTimeout)
 Ожидает перехода в сигнальное состояние.
void Set ()
 Перевести флаг в сигнальное состояние.
void Reset ()
 Перевести флаг в несигнальное состояние.

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

Cntm::SpecUtils::SysSignalFlag::SysSignalFlag ( bool  AutoReset = true,
bool  Init = false 
)

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

Исключение: SystemException в случае ошибки вызова системной функции.

Аргументы:
AutoReset - тип флага: с автосбросом или нет (по умолчанию - автосброс установлен).
Init - начальное значение флага (по умолчанию false).

См. определение в файле SysSignalFlag.cpp строка 18

Cntm::SpecUtils::SysSignalFlag::~SysSignalFlag (  ) 

Деструктор.

См. определение в файле SysSignalFlag.cpp строка 24


Методы

bool Cntm::SpecUtils::SysSignalFlag::Wait ( bool  Infinite,
uint  MSecTimeout 
)

Ожидает перехода в сигнальное состояние.

MSecTimeout - интервал ожидания наступления сигнального состояния в мс. Если объект находится в сигнальном состоянии, возврат происходит сразу с результатом true. Если сигнальное состояние наступило до истечения MSecTimeout или уже было на момент вызова Wait, то возвращается true, иначе возвращается false. Если MSecTimeout = 0, ожидания не происходит, возвращается true, если объект был в сигнальном состоянии, и false в противном случае.

Исключение: SystemException в случае ошибки вызова системной функции.

Аргументы:
Infinite - бесконечное ожидание.
MSecTimeout - длительность ожидания в мсек.

См. определение в файле SysSignalFlag.cpp строка 29

Перекрестные ссылки Cntm::SpecUtils::SysCriticalSection::PthreadMutex().

void Cntm::SpecUtils::SysSignalFlag::Set (  ) 

Перевести флаг в сигнальное состояние.

Исключение: SystemException в случае ошибки вызова системной функции.

См. определение в файле SysSignalFlag.cpp строка 60

void Cntm::SpecUtils::SysSignalFlag::Reset (  ) 

Перевести флаг в несигнальное состояние.

Исключение: SystemException в случае ошибки вызова системной функции.

См. определение в файле SysSignalFlag.cpp строка 67


Объявления и описания членов классов находятся в файлах:
SourceForge.net Logo
© Овсеевич Р.В. Документация по CntmLib 1.1.4 от 28 May 2008. Создано системой  doxygen 1.5.3