58 template <
class Object>
85 typedef QMap<int, ObserverProxyPtr> ModelMap;
93template <
class Object>
96 typename ModelMap::ConstIterator foundIter = m_modelMap.constFind(modelId);
97 if ((foundIter != m_modelMap.constEnd()) && foundIter.value().IsValid()){
98 return dynamic_cast<Object*
>(foundIter.value()->GetObservedModel());
ObserverProxy(CMultiModelDispatcherBase *parentPtr, int modelId, const istd::IChangeable::ChangeSet &relevantFlags)
virtual void OnUpdate(const istd::IChangeable::ChangeSet &changeSet) override
Called on update of observed model.
CSingleModelObserverBase BaseClass
Generic implementation of a data model changes notifier.
Object * GetObjectAt(int modelId) const
Get concrete object instance of the obsered model.
bool RegisterModel(IModel *modelPtr, int modelId=0, const istd::IChangeable::ChangeSet &relevantFlags=istd::IChangeable::GetAllChanges())
Register the data model to be observed.
void UnregisterAllModels()
Unregister all observed data objects.
virtual void OnModelChanged(int modelId, const istd::IChangeable::ChangeSet &changeSet)=0
Called when some model observed by dispatcher will be changed.
void UnregisterModel(int modelId=0)
Unregister the data model object.
Basic implementation for a single model observer.
Common interface for model objects, that supports Model/Observer design pattern.
Set of change flags (its IDs).
static const ChangeSet & GetAllChanges()
Get anonymous change set.
Base interface for all used interfaces and implementations.
Pointer wrapper providing automatic deleting pointed object during destruction.
This namespace containes basic implementation of Model/Observer design pattern This package is system...