TarzaNN
TarzaNN neural network simulator
|
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*/