7#include <QtCore/QMutex>
74 void CleanupObserverState();
108 AttachingState state;
112 typedef QMap<IObserver*, ObserverInfo> ObserversMap;
113 ObserversMap m_observers;
116 bool m_isDuringChanges;
119#if QT_VERSION >= 0x060000
120 mutable QRecursiveMutex m_mutex;
122 mutable QMutex m_mutex;
131 QMutexLocker lock(&m_mutex);
133 return m_cumulatedChangeIds;
Basic implementation of a model.
virtual int GetObserverCount() const
Returns count of connected observers.
virtual void DetachObserver(imod::IObserver *observerPtr) override
Detaches model object from observer observerPtr.
virtual bool AttachObserver(imod::IObserver *observerPtr) override
Attaches model object to observer observerPtr.
virtual bool IsAttached(const imod::IObserver *observerPtr) const override
Returns true if observer observer is attached to this model object.
istd::IChangeable::ChangeSet GetCumulatedChanges() const
void NotifyBeforeChange(const istd::IChangeable::ChangeSet &changeSet, bool isGroup)
Called before each change.
void NotifyAfterChange(const istd::IChangeable::ChangeSet &changeSet)
Called after each change.
virtual void OnBeginGlobalChanges()=0
Called before global changes will be started.
QSet< IObserver * > Observers
virtual Observers GetObservers() const
Returns set of all observers.
virtual void OnEndGlobalChanges(const istd::IChangeable::ChangeSet &changeSet)=0
Called after global changes are finished.
virtual void DetachAllObservers() override
Detaches all attached observers.
Common interface for model objects, that supports Model/Observer design pattern.
Common interface for all classes implementing the Observer functionality in the Model/Observer design...
Set of change flags (its IDs).
This namespace containes basic implementation of Model/Observer design pattern This package is system...