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 }
© Овсеевич Р.В. Документация по CntmLib 1.1.4 от 28 May 2008. Создано системой 1.5.3 |