Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
IPropertyMng.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/* IPropertyMng.h (C) 2000-2020 */
9/* */
10/* Interface du gestionnaire des propriétés. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_IPROPERTYMNG_H
13#define ARCANE_IPROPERTYMNG_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/ArcaneTypes.h"
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Arcane
23{
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27
28class Properties;
29class PropertiesImpl;
30class IObservable;
31
32/*---------------------------------------------------------------------------*/
33/*---------------------------------------------------------------------------*/
34/*!
35 * \brief Interface du gestionnaire des propriétés.
36 */
38{
39 public:
40
41 virtual ~IPropertyMng() {} //!< Libère les ressources.
42
43 public:
44
45 virtual ITraceMng* traceMng() const =0;
46
47 public:
48
49 /*!
50 * \internal
51 * \brief Récupère la liste de propriétés de nom complet \a full_name.
52 *
53 * Cette méthode ne doit être appelée que par la classe Properties.
54 * Pour récupérer une instance, il faut utiliser le constructeur de Properties.
55 */
56 virtual PropertiesImpl* getPropertiesImpl(const String& full_name) =0;
57
58 /*!
59 * \internal
60 * \brief Enregister les propriétés référencées par \a p.
61 */
62 virtual void registerProperties(const Properties& p) =0;
63
64 //! Supprime les propriétés référencées par \a p
65 virtual void destroyProperties(const Properties& p) =0;
66
67 //! Effectue la sérialisation
68 virtual void serialize(ISerializer* serializer) =0;
69
70 //! Sérialise les informations de propriété dans \a bytes.
71 virtual void writeTo(ByteArray& bytes) =0;
72
73 /*!
74 * \brief Relit les informations sérialisées contenues dans \a bytes.
75 *
76 * Le tableau \a bytes doit avoir été créé par un appel à writeTo().
77 */
78 virtual void readFrom(Span<const Byte> bytes) =0;
79
80 //! Affiche les propriétés et leurs valeurs sur le flot \a o
81 virtual void print(std::ostream& o) const =0;
82
83 /*!
84 * \brief Observable pour l'écriture.
85 *
86 * Les observateurs enregistrés dans cet observable sont appelés
87 * au début de writeTo().
88 */
90
91 /*!
92 * \brief Observable pour la lecture.
93 *
94 * Les observateurs enregistrés dans cet observable sont appelés
95 * à la fin de readFrom().
96 */
98};
99
100/*---------------------------------------------------------------------------*/
101/*---------------------------------------------------------------------------*/
102
103} // End namespace Arcane
104
105/*---------------------------------------------------------------------------*/
106/*---------------------------------------------------------------------------*/
107
108#endif
109
Interface d'un observable.
Interface du gestionnaire des propriétés.
virtual ~IPropertyMng()
Libère les ressources.
virtual void serialize(ISerializer *serializer)=0
Effectue la sérialisation.
virtual void print(std::ostream &o) const =0
Affiche les propriétés et leurs valeurs sur le flot o.
virtual IObservable * writeObservable()=0
Observable pour l'écriture.
virtual void readFrom(Span< const Byte > bytes)=0
Relit les informations sérialisées contenues dans bytes.
virtual IObservable * readObservable()=0
Observable pour la lecture.
virtual void destroyProperties(const Properties &p)=0
Supprime les propriétés référencées par p.
virtual void writeTo(ByteArray &bytes)=0
Sérialise les informations de propriété dans bytes.
Liste de propriétés.
Definition Properties.h:64
Classe de base des vecteurs 1D de données.
Interface du gestionnaire de traces.
Vue d'un tableau d'éléments de type T.
Definition Span.h:510
Chaîne de caractères unicode.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-