Класс Cntm::SynchroSpace::TaskQueue

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


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

Класс очереди задач для синхронного выполнения.

Обеспечивает операции добавления задач и их синхронного выполнения. Перед добавлением необходимо создать объект (класс объекта д.б. унаследован от Cntm:: SynchroSpace:: TaskBase) в динамической памяти. После выполнения данный объект будет автоматически уничтожен очередью.

Данный класс является частично многопоточным. Вызовы Add синхронизированы друг с другом и с вызовом Exec(), вызовы Exec() друг с другом не синхронизированы, но м.б. рекурсивны.

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

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


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

 TaskQueue ()
 Конструктор.
bool Add (TaskBase *Task)
 Добавить новую задачу в конец очереди.
void Exec () throw ()
 Запустить задачи, находящиеся в очереди, на выполнение.

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

Cntm::SynchroSpace::TaskQueue::TaskQueue (  )  [inline]

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

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


Методы

bool Cntm::SynchroSpace::TaskQueue::Add ( TaskBase Task  ) 

Добавить новую задачу в конец очереди.

Объект задачи д.б. создан в динамической памяти. После выполнения задача автоматически будет удалена. Класс объекта задачи д.б. унаследован от Cntm:: SynchroSpace:: TaskBase.

Метод возвращает true, если на момент добавления очередь была пуста. Это значит, что после добавления необходимо запустить выполнение задач очереди. В противном случае возвращается false. Это означает, что запрос на выполнение очереди уже был поставлен ранее или уже идет выполнение.

Исключение: NullArgException если не указана задача.

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

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

Перекрестные ссылки Cntm::LinkedListItemBase::InsertBefore().

void Cntm::SynchroSpace::TaskQueue::Exec (  )  throw ()

Запустить задачи, находящиеся в очереди, на выполнение.

После выполнения задача удаляется из очереди. Если при выполнении задачи происходит исключение, то оно игнорируется.

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

Перекрестные ссылки Cntm::SynchroSpace::TaskBase::Exec(), Cntm::SynchroSpace::TaskBase::IsRecursive() и Cntm::LinkedListItemBase::Remove().


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