Класс Cntm::Using
[Cntm.Concurrency]

Граф наследования:Cntm::Using:

Cntm::RefPtr< T > Cntm::UsingReentrantSync Cntm::UsingSync

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


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

Объекты данного класса используются как scoped-объекты, наподобии auto_ptr и т.

п., и являются по сути ссылочными указателями на объекты. Using-объекты преследуют 2 цели: 1 - при создании они проверяют флаг завершения потока и переданный ссылочный указатель на NULL (т.е. объект уже находится в удаляемом состоянии), если какое либо из этих условий истинно, то генерируется специальное исключение Cntm::TerminatingSignal. 2 цель - хранить полученный ссылочный на время существования Using-объекта, т.о. гарантируется, что при выполнении кода, находящегося между созданием и деинициализацией Using-объекта объект не перейдет в удаляемое состояние.

Пример использования. Using use(*this); // Вход в Using-секцию. Либо вход будет успешный, либо, если поток необходимо завершить, то будет сгенерировано исключение TerminatingSignal. ... // В этом блоке объект всегда находится не в удаляемом состоянии и преобразование обычного указателя (например, this) к ссылочному никогда не приведет к результату NULL. use.Unuse(); // Выход из блока.

Использование Using-объектов целесообразно там, где единица выполнения не хранит ссылку на объект, метод которого выполняет, т.е. использовать их следует в потоках активных объектов и асинхронных процедурах, если они не хранят ссылочный указатель на объект.

Класс не поддерживает многопоточность.

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

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


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

 Using (const IRefObject::Ptr &Object)
 Конструктор инициализации ссылочным указателем или ссылкой (которая м.
 Using (const Using &Src)
 Конструктор копирования.
Usingoperator= (const IRefObject::Ptr &Object)
 Оператор присвоения ссылочного указателя или обычной ссылки (которая м.
Usingoperator= (const Using &Src)
 Оператор присвоения.
void Unuse ()
 Досрочный выход из Using-секции.

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

Cntm::Using::Using ( const IRefObject::Ptr Object  )  [inline]

Конструктор инициализации ссылочным указателем или ссылкой (которая м.

б. преобразована к ссылочному указателю) на объект. Сохраняет полученный ссылочный указатель.

Исключение: TerminatingSignal - если установлен флаг Terminated() текущей единицы выполнения или объект находится в удаляемом состоянии (ссылочный указатель на него равен NULL).

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

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

Перекрестные ссылки Cntm::ExecutionUnit::CheckTerminating().

Cntm::Using::Using ( const Using Src  )  [inline]

Конструктор копирования.

Сохраняет ссылочный указатель из источника.

Исключение: TerminatingSignal - если установлен флаг Terminated() текущей единицы выполнения или объект находится в удаляемом состоянии (ссылочный указатель на него равен NULL).

Аргументы:
Src - секция-источник.

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

Перекрестные ссылки Cntm::ExecutionUnit::CheckTerminating().


Методы

Using& Cntm::Using::operator= ( const IRefObject::Ptr Object  )  [inline]

Оператор присвоения ссылочного указателя или обычной ссылки (которая м.

б. преобразована к ссылочному указателю) на объект. Сохраняет полученный ссылочный указатель.

Исключение: TerminatingSignal - если установлен флаг Terminated() текущей единицы выполнения или объект находится в удаляемом состоянии (ссылочный указатель на него равен NULL).

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

Переопределяется в Cntm::UsingReentrantSync и Cntm::UsingSync.

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

Перекрестные ссылки Cntm::ExecutionUnit::CheckTerminating() и Cntm::RefPtr< T >::operator=().

Using& Cntm::Using::operator= ( const Using Src  )  [inline]

Оператор присвоения.

Сохраняет ссылочный указатель из источника.

Исключение: TerminatingSignal - если установлен флаг Terminated() текущей единицы выполнения или объект находится в удаляемом состоянии (ссылочный указатель на него равен NULL).

Аргументы:
Src - секция-источник.

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

Перекрестные ссылки Cntm::ExecutionUnit::CheckTerminating() и Cntm::RefPtr< T >::operator=().

void Cntm::Using::Unuse (  )  [inline]

Досрочный выход из Using-секции.

Сбрасывает в NULL значение хранящегося ссылочного указателя.

Переопределяется в Cntm::UsingReentrantSync и Cntm::UsingSync.

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

Перекрестные ссылки Cntm::RefPtr< T >::SetNull().


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