00001 /* 00002 * CntmLib - Подсчет ссылок, потоки, синхронизация, асинхронные процедуры, события 00003 * Copyright (c) 2005, Овсеевич Роман, @mail.ru 00004 * _______________________________________________________________________________ 00005 * Разрешено свободное использование, копирование, распространение, изменение 00006 * (изменение сведений об авторских правах запрещено). Запрещена продажа и 00007 * включение всей библиотеки или ее частей в другие библиотеки. В сведениях об 00008 * авторских правах на программу (или сведениях о программе, об авторах, 00009 * использованных средствах разработки и т.д.) должна быть указана информация 00010 * о библиотеке CntmLib, ее авторе и, возможно, сайте или email'е. 00011 * Библиотека поставляется "как есть", без каких-либо гарантий со стороны автора. 00012 */ 00013 00014 /** 00015 * \defgroup Concurrency Cntm.Concurrency 00016 * Данный пакет содержит базовые классы, связанные с единицами выполнения. Единица выполнения это код (обычно метод объекта), выполняющийся, в определенной степени, автономно (по времени) от кода, создавшего единицу выполнения. К единицам выполнения относятся асинхронные процедуры и потоки активных объектов (см. документацию по пакетам асинхронных процедур и активных объектов). 00017 * 00018 * Базовый класс единицы выполнения - Cntm::ExecutionUnit. Потомки этого класса предоставляют сервис по созданию конкретных типов единиц выполнения. Взаимодействие с единицами выполнения осуществляется через специальные объекты - хэндлы, которые во многом схожи со ссылочными указателями. Класс Cntm::ExecutionUnitHandle является базовым классом хэндлов единиц выполнения. 00019 * 00020 * В некоторых случаях (например, для активных объектов) единица выполнения не хранит ссылочный указатель на объект, метод которого выполняет. Для получения ссылочного указателя из обычного (например, из this) можно применять т.н. Using-объекты, которые комбинируют преобразование и хранение ссылочного указателя на объект с проверкой требования завершения текущей единицы выполнения и состояния объекта (объект не должен находиться в удаляемом состоянии). Для этого служат классы Cntm::Using, Cntm::UsingSync и Cntm::UsingReentrantSync. Последние два помимо всего прочего производят вход в синхропространство. 00021 */ 00022 00023 #include <Cntm/Concurrency/ExecutionUnit.h> 00024 #include <Cntm/Concurrency/ExecutionUnitHandle.h> 00025 #include <Cntm/Concurrency/TerminatingSignal.h> 00026 #include <Cntm/Concurrency/UsingScopes/Using.h> 00027 #include <Cntm/Concurrency/UsingScopes/UsingSync.h> 00028 #include <Cntm/Concurrency/UsingScopes/UsingReentrantSync.h>
© Овсеевич Р.В. Документация по CntmLib 1.1.4 от 28 May 2008. Создано системой 1.5.3 |