Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
Arcane::Observable Class Reference

Base class of an observable. More...

#include </__w/arcaneframework.github.io/arcaneframework.github.io/framework/arccore/src/base/arccore/base/Observable.h>

Inheritance diagram for Arcane::Observable:
Collaboration diagram for Arcane::Observable:

Public Member Functions

 ~Observable () override
 Releases resources.
 Observable (const Observable &rhs)=delete
void operator= (const Observable &rhs)=delete
void attachObserver (IObserver *obs) override
 Attaches the observer obs to this observable.
void detachObserver (IObserver *obs) override
 Detaches the observer obs from this observable.
void notifyAllObservers () override
 Notifies all observers.
bool hasObservers () const override
 True if observers are attached to this observable.
void detachAllObservers () override
 Detaches all observers associated with this instance.
Public Member Functions inherited from Arcane::IObservable
virtual ~IObservable ()
 Frees resources.

Protected Member Functions

void _detachAllObservers ()

Private Attributes

bool m_is_destroyed
Impl::CoreArray< IObserver * > m_observers

Additional Inherited Members

Static Public Member Functions inherited from Arcane::IObservable
static IObservablecreateDefault ()

Detailed Description

Base class of an observable.

An observable cannot be copied.

Definition at line 36 of file arccore/src/base/arccore/base/Observable.h.

Constructor & Destructor Documentation

◆ ~Observable()

Arcane::Observable::~Observable ( )
override

Releases resources.

Definition at line 26 of file Observable.cc.

References Arcane::arccoreIsCheck().

Here is the call graph for this function:

◆ Observable()

Arcane::Observable::Observable ( )
inline

Definition at line 45 of file arccore/src/base/arccore/base/Observable.h.

Member Function Documentation

◆ _detachAllObservers()

void Arcane::Observable::_detachAllObservers ( )
protected

Definition at line 87 of file Observable.cc.

◆ attachObserver()

void Arcane::Observable::attachObserver ( IObserver * obs)
overridevirtual

Attaches the observer obs to this observable.

It is possible to attach an observer more than once.

Implements Arcane::IObservable.

Definition at line 40 of file Observable.cc.

References Arcane::IObserver::attachToObservable().

Here is the call graph for this function:

◆ detachAllObservers()

void Arcane::Observable::detachAllObservers ( )
overridevirtual

Detaches all observers associated with this instance.

Implements Arcane::IObservable.

Definition at line 100 of file Observable.cc.

◆ detachObserver()

void Arcane::Observable::detachObserver ( IObserver * obs)
overridevirtual

Detaches the observer obs from this observable.

If the observer obs is not present, nothing happens. If it is present multiple times, the last occurrence is deleted.

Implements Arcane::IObservable.

Definition at line 53 of file Observable.cc.

◆ hasObservers()

bool Arcane::Observable::hasObservers ( ) const
overridevirtual

True if observers are attached to this observable.

Implements Arcane::IObservable.

Definition at line 78 of file Observable.cc.

◆ notifyAllObservers()

void Arcane::Observable::notifyAllObservers ( )
overridevirtual

Notifies all observers.

For each attached observer, calls IObserver::observerUpdate().

Implements Arcane::IObservable.

Definition at line 66 of file Observable.cc.

Member Data Documentation

◆ m_is_destroyed

bool Arcane::Observable::m_is_destroyed
private

Definition at line 68 of file arccore/src/base/arccore/base/Observable.h.

◆ m_observers

Impl::CoreArray<IObserver*> Arcane::Observable::m_observers
private

Definition at line 69 of file arccore/src/base/arccore/base/Observable.h.


The documentation for this class was generated from the following files: