presage  0.8.7
observable.cpp
Go to the documentation of this file.
00001 
00002 /******************************************************
00003  *  Presage, an extensible predictive text entry system
00004  *  ---------------------------------------------------
00005  *
00006  *  Copyright (C) 2008  Matteo Vescovi <matteo.vescovi@yahoo.co.uk>
00007 
00008     This program is free software; you can redistribute it and/or modify
00009     it under the terms of the GNU General Public License as published by
00010     the Free Software Foundation; either version 2 of the License, or
00011     (at your option) any later version.
00012 
00013     This program is distributed in the hope that it will be useful,
00014     but WITHOUT ANY WARRANTY; without even the implied warranty of
00015     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00016     GNU General Public License for more details.
00017 
00018     You should have received a copy of the GNU General Public License along
00019     with this program; if not, write to the Free Software Foundation, Inc.,
00020     51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
00021                                                                              *
00022                                                                 **********(*)*/
00023 
00024 
00025 #include "observable.h"
00026 
00027 #include <iostream>
00028 
00029 Observable::~Observable ()
00030 {
00031     // complete
00032 }
00033   
00034 void Observable::attach (Observer* observer)
00035 {
00036     observers.push_back (observer);
00037 }
00038 
00039 void Observable::detach (Observer* observer)
00040 {
00041     observers.remove (observer);
00042 }
00043 
00044 void Observable::notify ()
00045 {
00046     for (std::list <Observer*>::iterator it = observers.begin ();
00047          it != observers.end ();
00048          it++) {
00049         //std::cerr << "notify() observable: " << *it << std::endl;
00050         (*it)->update (this);
00051     }
00052 }
00053 
00054 Observable::Observable ()
00055 {
00056     // complete
00057 }
00058 
00059