Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
utils/IObserver.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2022 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
4// See the top-level COPYRIGHT file for details.
5// SPDX-License-Identifier: Apache-2.0
6//-----------------------------------------------------------------------------
7/*---------------------------------------------------------------------------*/
8/* IObserver.h (C) 2000-2021 */
9/* */
10/* Interface d'un observateur. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_UTILS_IOBSERVER_H
13#define ARCANE_UTILS_IOBSERVER_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Arcane
23{
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27
28class IObservable;
29
30/*---------------------------------------------------------------------------*/
31/*---------------------------------------------------------------------------*/
32/*!
33 * \internal
34 * \brief Interface d'un observateur.
35 *
36 * Cette interface représente le concept d'observateur tel qu'il est
37 * défini dans le Design Pattern.
38 * Un observateur est attaché à un observable (IObservable) par la
39 * méthode IObservable::attachObserver() et détaché par
40 * IObservable::detachObserver(). L'observable le notifie d'un changement
41 * en appelant la méthode observerUpdate().
42 *
43 * Un observateur ne peut-être attaché qu'à un seul observable à la fois
44 *
45 * Les méthodes de cette classe ne doivent être appelées que
46 * par IObservable et jamais directement par l'utilisateur.
47 *
48 * \since 0.4.36
49 * \author Gilles Grospellier
50 * \date 25/06/2001
51 *
52 * \sa IObservable
53 */
54class ARCANE_UTILS_EXPORT IObserver
55{
56 protected:
57
58 IObserver() {}
59
60 public:
61
62 virtual ~IObserver() {} //!< Libère les ressources
63
64 public:
65
66 //! \brief Notification venant de l'observable \a oba.
67 virtual void observerUpdate(IObservable*) =0;
68
69 public:
70
71 //! S'attache à l'observable \a obs
72 virtual void attachToObservable(IObservable* obs) =0;
73
74 //! Se détache de l'observable
75 virtual void detach() =0;
76};
77
78/*---------------------------------------------------------------------------*/
79/*---------------------------------------------------------------------------*/
80
81} // End namespace Arcane
82
83/*---------------------------------------------------------------------------*/
84/*---------------------------------------------------------------------------*/
85
86#endif
87
Fichier de configuration d'Arcane.
Interface d'un observable.
virtual ~IObserver()
Libère les ressources.
virtual void detach()=0
Se détache de l'observable.
virtual void attachToObservable(IObservable *obs)=0
S'attache à l'observable obs.
virtual void observerUpdate(IObservable *)=0
Notification venant de l'observable oba.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-