TarzaNN
TarzaNN neural network simulator
C:/Users/albertlr/projects/TarzaNN/TarzaNN/Observer.h
Go to the documentation of this file.
00001 /****************************************************************************
00002  **
00003  ** Copyright C 2002-2012 Laboratory for Active and Attentive Vision (LAAV), Department of Computer Science and Engineering, York University, Toronto, ON, Canada.
00004  ** All rights reserved.
00005  **
00006  ** This file is part of the TarzaNN Neural Network Simulator.
00007  **
00008  ** This file may be distributed and/or modified under the terms of the
00009  ** GNU General Public License version 2 as published by the Free Software
00010  ** Foundation and appearing in the file LICENSE.GPL included in the
00011  ** packaging of this file.
00012  **
00013  ** See http://www.tarzann.org/gpl/ for GPL licensing information.
00014  **
00015  ** Contact info@tarzann.org if any conditions of this licensing are
00016  ** not clear to you.
00017  **
00018  ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
00019  ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
00020  **
00021  ****************************************************************************/
00022 
00023 #ifndef OBSERVER_H_INCLUDED
00024 #define OBSERVER_H_INCLUDED
00025 
00026 #include <QMutex>
00027 
00028 using namespace std;
00029 #include <list>
00030 
00033 class Observer{
00034 public:
00035         virtual void updateNN(Observer* sourceFP, bool functional)=0;
00036         
00038         void attach(Observer * observer){
00039                 observerMutex.lock();
00040                 _observersList.push_back(observer);
00041                 observerMutex.unlock(); 
00042         }
00043         
00045         void detach(Observer * observer){
00046                 observerMutex.lock();   
00047                 _observersList.remove(observer);
00048                 observerMutex.unlock(); 
00049         }
00050         
00051 protected:
00052         QMutex observerMutex;
00053     list<Observer*> _observersList;
00054 };
00055 
00056 #endif /*OBSERVER_H_INCLUDED*/
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines