SynchroObject.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/Synchro/SynchroObject.h>
00015 #include <Cntm/Synchro/SyncScopes/Sync.h>
00016 #include <Cntm/Synchro/SyncScopes/ReentrantSync.h>
00017 
00018 Cntm::SynchroObject::SynchroObject(const SynchroSpace::Ptr& Space)
00019 {
00020         space = Space? Space : SynchroSpace::Main();
00021         if (!space)
00022                 throw IllegalStateException("Cntm::SynchroObject::SynchroObject", "Не указано синхропространство и отсутствует главное синхропространство ");
00023 }
00024 
00025 Cntm::SynchroObject::SynchroObject(Sync& ConstructSync)
00026 {
00027         IBasicSynchro::Ptr so = ConstructSync.Object();
00028         if (so)
00029                 space = so->Space();
00030         else
00031                 ConstructSync = space = new ExtraSynchroSpace;
00032 }
00033 
00034 Cntm::SynchroObject::SynchroObject(ReentrantSync& ConstructSync)
00035 {
00036         IBasicSynchro::Ptr so = ConstructSync.Object();
00037         if (so)
00038                 space = so->Space();
00039         else
00040                 ConstructSync = space = new ExtraSynchroSpace;
00041 }

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