ACF $AcfVersion:0$
IModel.h
Go to the documentation of this file.
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ACF-Commercial
2#pragma once
3
4
5// ACF includes
6#include <istd/IChangeable.h>
7#include <imod/imod.h>
8
9
10namespace imod
11{
12
13
14class IObserver;
15
16
24class IModel: virtual public istd::IPolymorphic
25{
26public:
33 virtual bool AttachObserver(IObserver* observerPtr) = 0;
34
41 virtual void DetachObserver(IObserver* observerPtr) = 0;
42
46 virtual void DetachAllObservers() = 0;
47
51 virtual bool IsAttached(const IObserver* observerPtr) const = 0;
52};
53
54
55} // namespace imod
56
57
58
Common interface for model objects, that supports Model/Observer design pattern.
Definition IModel.h:25
virtual void DetachAllObservers()=0
Detaches all attached observers.
virtual void DetachObserver(IObserver *observerPtr)=0
Detaches model object from observer observerPtr.
virtual bool AttachObserver(IObserver *observerPtr)=0
Attaches model object to observer observerPtr.
virtual bool IsAttached(const IObserver *observerPtr) const =0
Returns true if observer observer is attached to this model object.
Common interface for all classes implementing the Observer functionality in the Model/Observer design...
Definition IObserver.h:156
Base interface for all used interfaces and implementations.
This namespace containes basic implementation of Model/Observer design pattern This package is system...
Definition CModelBase.h:16