Шаблон класса Cntm::AsyncProcResult< ResT >
[Cntm.AsyncProc]

Граф наследования:Cntm::AsyncProcResult< ResT >:

Cntm::AsyncProcHandle Cntm::ExecutionUnitHandle Cntm::BasicAsyncProc

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


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

template<typename ResT>
class Cntm::AsyncProcResult< ResT >

Класс для получения результата выполнения всинхронного метода, указанного при создании процедуры.

Наследует все свойства и методы хэндла асинхронной процедуры. Является шаблонным классом, параметр шаблона - тип возвращаемого асинхронным методом значения.

С одной процедурой может быть связано несколько результатов. Класс результата поддерживает операции копирования и приведения к типу возвращаемого асинхронным методом значения.

Данный класс обеспечивает многопоточность.

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

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


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

 AsyncProcResult ()
 Конструктор по умолчанию.
const ResT & Value () const
 Получить значение результата асинхронного метода.
 operator const ResT & () const
 Оператор приведения к типу возвращаемого асинхронным методом значения.
template<typename ClassT, typename MethodT>
AsyncProcResultBindFinishToThreadProc (ClassT Object, MethodT Method, ThreadPriority Priority=tpNormal, bool HoldRef=true)
 Метод аналогичен методу SetFinishProc.
template<typename ClassT, typename MethodT>
AsyncProcResultBindFinishToDeferProc (ClassT Object, MethodT Method, SynchroSpace::Ptr Space=SynchroSpace::Ptr(), bool HoldRef=true)
 Метод аналогичен методу SetFinishProc.
template<typename ClassT, typename MethodT>
AsyncProcResultBindFinishToDirectProc (ClassT Object, MethodT Method, bool HoldRef=true)
 Метод аналогичен методу SetFinishProc.

Друзья

class SpecUtils::AsyncProcResImpl

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

template<typename ResT>
Cntm::AsyncProcResult< ResT >::AsyncProcResult (  )  [inline]

Конструктор по умолчанию.

Создает результат, не связанный с асинхронной процедурой.

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


Методы

template<typename ResT>
const ResT& Cntm::AsyncProcResult< ResT >::Value (  )  const [inline]

Получить значение результата асинхронного метода.

Значение результата становится доступным только после успешного завершения асинхронной процедуры. Если данный метод был вызван до завершения, то он производит ожидание завершения процедуры. Если выполнение закончилось удачно, то будет возвращено значение результата, в противном случае будет сгенерировано исключение Cntm::NoneAsyncResultException, т.к. значение результата уже никогда не будет получено.

Исключение: NoneAsyncResultException - попытка получения результата процедуры, завершившейся с ошибкой.

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

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

template<typename ResT>
Cntm::AsyncProcResult< ResT >::operator const ResT & (  )  const [inline]

Оператор приведения к типу возвращаемого асинхронным методом значения.

Вызывает метод Value().

Исключение: NoneAsyncResultException - попытка получения результата процедуры, завершившейся с ошибкой.

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

Перекрестные ссылки Cntm::AsyncProcResult< ResT >::Value().

template<typename ResT>
template<typename ClassT, typename MethodT>
Cntm::AsyncProcResult< ResT > & Cntm::AsyncProcResult< ResT >::BindFinishToThreadProc ( ClassT  Object,
MethodT  Method,
ThreadPriority  Priority = tpNormal,
bool  HoldRef = true 
) [inline]

Метод аналогичен методу SetFinishProc.

Данный метод принимает объект и метод и формирует отсроченную потоковую процедуру на основе указанных данных. В качестве аргумента указывается данный объект, что позволяет обработчику завершения получить результат выполнения.

Сигнатура метода Method должна иметь вид: "void(const AsyncProcHandle& res)".

Для удобства использования возвращается этот же объект.

См. Cntm::AsyncProc::SuspendThread.

Аргументы:
Object - объект-обработчик. Задается обычным указателем.
Method - метод объекта Object, который будет вызван синхронизированно в указанном синхропространстве.
Priority - приоритет потока, опционально, значение по умолчанию - tpNormal (см. перечисление Cntm::BasicAsyncProc::ThreadPriority).
HoldRef - хранить ли ссылку на объект Object, если это ссылочный объект. Параметр опциональный, значение по умолчанию - true.

Переопределяет метод предка Cntm::AsyncProcHandle.

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

Перекрестные ссылки Cntm::AsyncProcHandle::SetFinishProc() и Cntm::AsyncProc::SuspendThread().

template<typename ResT>
template<typename ClassT, typename MethodT>
Cntm::AsyncProcResult< ResT > & Cntm::AsyncProcResult< ResT >::BindFinishToDeferProc ( ClassT  Object,
MethodT  Method,
SynchroSpace::Ptr  Space = SynchroSpace::Ptr(),
bool  HoldRef = true 
) [inline]

Метод аналогичен методу SetFinishProc.

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

Сигнатура метода Method должна иметь вид: "void(const AsyncProcHandle& res)".

Для удобства использования возвращается этот же объект.

См. Cntm::AsyncProc::SuspendDefer.

Аргументы:
Object - объект-обработчик. Задается обычным указателем.
Method - метод объекта Object, который будет вызван синхронизированно в указанном синхропространстве.
Space - синхропространство, в котором будет выполнен метод. Если явно не указано, тоиспользуется синхропространство объекта Object, если это синхрообъект, иначе используется главное синхропространство.
HoldRef - хранить ли ссылку на объект Object, если это ссылочный объект. Параметр опциональный, значение по умолчанию - true.

Переопределяет метод предка Cntm::AsyncProcHandle.

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

Перекрестные ссылки Cntm::AsyncProcHandle::SetFinishProc() и Cntm::AsyncProc::SuspendDefer().

template<typename ResT>
template<typename ClassT, typename MethodT>
Cntm::AsyncProcResult< ResT > & Cntm::AsyncProcResult< ResT >::BindFinishToDirectProc ( ClassT  Object,
MethodT  Method,
bool  HoldRef = true 
) [inline]

Метод аналогичен методу SetFinishProc.

Данный метод принимает объект и метод и формирует отсроченную прямую процедуру на основе указанных данных. В качестве аргумента указывается данный объект, что позволяет обработчику завершения получить результат выполнения.

Сигнатура метода Method должна иметь вид: "void(const AsyncProcHandle& res)".

Для удобства использования возвращается этот же объект.

См. Cntm::AsyncProc::SuspendDirect.

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

Переопределяет метод предка Cntm::AsyncProcHandle.

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

Перекрестные ссылки Cntm::AsyncProcHandle::SetFinishProc() и Cntm::AsyncProc::SuspendDirect().


Документация по друзьям класса и функциям, отноносящимся к классу

template<typename ResT>
friend class SpecUtils::AsyncProcResImpl [friend]

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


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