п., и являются по сути ссылочными указателями на объекты. 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) | |
Конструктор копирования. | |
Using & | operator= (const IRefObject::Ptr &Object) |
Оператор присвоения ссылочного указателя или обычной ссылки (которая м. | |
Using & | operator= (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=().
Оператор присвоения.
Сохраняет ссылочный указатель из источника.
Исключение: 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().
© Овсеевич Р.В. Документация по CntmLib 1.1.4 от 28 May 2008. Создано системой 1.5.3 |