6#include <QtCore/QMutex>
38 void AttachProxyObservers();
39 void DetachProxyObservers();
50 virtual bool OnModelDetached(
imod::IModel* modelPtr)
override;
59 struct PendingObserver
62 :m_observerPtr(observerPtr),
63 m_isPending(isPending)
69 return (observerPtr == m_observerPtr);
76 typedef PendingObserver Observer;
77 typedef std::vector<Observer> Observers;
79 Observers m_proxyObservers;
80 ModelObserver m_modelObserver;
82#if QT_VERSION >= 0x060000
83 mutable QRecursiveMutex m_modelMutex;
85 mutable QMutex m_modelMutex;
Implementation of the model proxy.
void SetModelPtr(imod::IModel *modelPtr)
virtual bool AttachObserver(IObserver *observerPtr) override
Attaches model object to observer observerPtr.
virtual void DetachObserver(IObserver *observerPtr) override
Detaches model object from observer observerPtr.
virtual void DetachAllObservers() override
Detaches all attached observers.
virtual bool IsAttached(const IObserver *observerPtr) const override
Returns true if observer observer is attached to this model object.
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...
Basic implementation for a single model observer with binding to concrete data object interface.
This namespace containes basic implementation of Model/Observer design pattern This package is system...