#ifdef HAVE_CONFIG_H #include #endif #include "isubject.h" #include "interfaces/observer.h" #include #include namespace KMail { ISubject::~ISubject() { mObserverList.clear(); } void ISubject::attach( Interface::Observer * pObserver ) { if ( qFind( mObserverList.begin(), mObserverList.end(), pObserver ) == mObserverList.end() ) mObserverList.push_back( pObserver ); } void ISubject::detach( Interface::Observer * pObserver ) { QValueVector::iterator it = qFind( mObserverList.begin(), mObserverList.end(), pObserver ); if ( it != mObserverList.end() ) mObserverList.erase( it ); } void ISubject::notify() { kdDebug(5006) << "ISubject::notify " << mObserverList.size() << endl; for ( QValueVector::iterator it = mObserverList.begin() ; it != mObserverList.end() ; ++it ) (*it)->update( this ); } }