AsyncProcHandle.cpp

См. документацию.
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 }

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