00001 /* 00002 * CntmLib - Подсчет ссылок, потоки, синхронизация, асинхронные процедуры, события 00003 * Copyright (c) 2005, Овсеевич Роман, CntmLib@mail.ru 00004 * _______________________________________________________________________________ 00005 * Разрешено свободное использование, копирование, распространение, изменение 00006 * (изменение сведений об авторских правах запрещено). Запрещена продажа и 00007 * включение всей библиотеки или ее частей в другие библиотеки. В сведениях об 00008 * авторских правах на программу (или сведениях о программе, об авторах, 00009 * использованных средствах разработки и т.д.) должна быть указана информация 00010 * о библиотеке CntmLib, ее авторе и, возможно, сайте или email'е. 00011 * Библиотека поставляется "как есть", без каких-либо гарантий со стороны автора. 00012 */ 00013 00014 #include <Cntm/AsyncProc/Internal/AsyncProcImpl.h> 00015 #include <Cntm/AsyncProc/AsyncProcHandleDef.h> 00016 00017 Cntm::BasicAsyncProc::ProcType Cntm::AsyncProcHandle::Type() const 00018 { 00019 AsyncProcImplPtr temp = Proc(); 00020 if (!temp) throw IllegalStateException("Cntm::AsyncProcHandle::Type()", "Тип асинхронной процедуры неопределен, т.к. хэндлу асинхронной процедуры не присвоено значения"); 00021 return temp->Type(); 00022 } 00023 00024 bool Cntm::AsyncProcHandle::Started() const 00025 { 00026 AsyncProcImplPtr temp = Proc(); 00027 return temp? temp->Started() : false; 00028 } 00029 00030 bool Cntm::AsyncProcHandle::Finished() const 00031 { 00032 AsyncProcImplPtr temp = Proc(); 00033 return temp? temp->Finished() : false; 00034 } 00035 00036 bool Cntm::AsyncProcHandle::Success() const 00037 { 00038 AsyncProcImplPtr temp = Proc(); 00039 return temp? temp->Success() : false; 00040 } 00041 00042 void Cntm::AsyncProcHandle::Start() 00043 { 00044 AsyncProcImplPtr temp = Proc(); 00045 if (temp) temp->Start(); 00046 } 00047 00048 bool Cntm::AsyncProcHandle::Wait(uint MSecTimeout) 00049 { 00050 AsyncProcImplPtr temp = Proc(); 00051 return temp? temp->Wait(MSecTimeout) : false; 00052 } 00053 00054 Cntm::AsyncProcHandle& Cntm::AsyncProcHandle::SetFinishProc(const AsyncProcHandle& FinishProc) 00055 { 00056 AsyncProcImplPtr temp = Proc(); 00057 if (temp) temp->SetFinishProc(FinishProc); 00058 return *this; 00059 } 00060 00061 void Cntm::AsyncProcHandle::SetHoldRef(bool HoldRef) 00062 { 00063 AsyncProcImplPtr temp = Proc(); 00064 if (temp) temp->SetHoldRef(HoldRef); 00065 } 00066 00067 Cntm::AsyncProcHandle::AsyncProcHandle(const AsyncProcImplPtr& Proc): ExecutionUnitHandle(Proc) 00068 { 00069 } 00070 00071 Cntm::AsyncProcHandle::AsyncProcImplPtr Cntm::AsyncProcHandle::Proc() const 00072 { 00073 return AsyncProcImplPtr::StaticCast(impl); 00074 }
© Овсеевич Р.В. Документация по CntmLib 1.1.4 от 28 May 2008. Создано системой 1.5.3 |