Desktop/sourceforge/geometria/src/kernel/subject.cpp

Go to the documentation of this file.
00001 /*
00002 This file is part of geometria.
00003 
00004 geometria is free software; you can redistribute it and/or modify 
00005 it under the terms of the GNU General Public License as published 
00006 by the Free Software Foundation; either version 2 of the License, 
00007 or (at your option) any later version.
00008 
00009 geometria is distributed in the hope that it will be useful, but 
00010 WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 
00011 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public 
00012 License for more details.
00013 
00014 You should have received a copy of the GNU General Public 
00015 License along with geometria; if not, write to the Free Software 
00016 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
00017 
00018 (c) Philipp Moritz, 2006
00019 */
00020 
00021 #include "subject.hpp"
00022 
00023 subject::subject()
00024 : m_observers(new std::list<observer*>())
00025 {
00026 }
00027 
00028 subject::~subject(void)
00029 {
00030 }
00031 
00032 void subject::register_observer(observer *ob)
00033 {
00034         m_observers->push_back(ob);
00035 }
00036 
00037 void subject::unregister_observer(observer *ob)
00038 {
00039         m_observers->remove(ob);
00040 }
00041 
00042 void subject::notice_all_observers()
00043 {
00044         typedef std::list<observer*>::iterator LI;
00045         for(LI iter = m_observers->begin(); iter != m_observers->end();iter++)
00046         {
00047                 (*iter)->update();
00048         }
00049 }

Generated on Fri May 19 19:30:28 2006 for geometria by  doxygen 1.4.6-NO