Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
ItemFamilyPolicyMng.cc
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2023 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/* ItemFamilyPolicyMng.cc (C) 2000-2023 */
9/* */
10/* Gestionnaire des politiques d'une famille d'entités. */
11/*---------------------------------------------------------------------------*/
12/*---------------------------------------------------------------------------*/
13
14#include "arcane/utils/NotSupportedException.h"
15#include "arcane/utils/NotImplementedException.h"
16#include "arcane/utils/ArgumentException.h"
17
18#include "arcane/IItemFamilyCompactPolicy.h"
19
20#include "arcane/mesh/ItemFamilyPolicyMng.h"
21#include "arcane/mesh/ItemsExchangeInfo2.h"
22#include "arcane/mesh/ItemFamily.h"
23#include "arcane/mesh/IndirectItemFamilySerializer.h"
24#include "arcane/mesh/ItemFamilyCompactPolicy.h"
25
26/*---------------------------------------------------------------------------*/
27/*---------------------------------------------------------------------------*/
28
29namespace Arcane::mesh
30{
31
32/*---------------------------------------------------------------------------*/
33/*---------------------------------------------------------------------------*/
34
35ItemFamilyPolicyMng::
36~ItemFamilyPolicyMng()
37{
38 delete m_compact_policy;
39}
40
41/*---------------------------------------------------------------------------*/
42/*---------------------------------------------------------------------------*/
43
46{
47 ItemsExchangeInfo2* exchanger = _createExchanger();
48 for( IItemFamilySerializeStepFactory* factory : m_serialize_step_factories ){
49 IItemFamilySerializeStep* step = factory->createStep(m_item_family);
50 if (step)
51 exchanger->addSerializeStep(step);
52 }
53 return exchanger;
54}
55
56/*---------------------------------------------------------------------------*/
57/*---------------------------------------------------------------------------*/
58
61{
62 if (with_flags)
63 throw NotSupportedException(A_FUNCINFO,"serialisation with 'with_flags==true'");
64 return new IndirectItemFamilySerializer(m_item_family);
65}
66
67/*---------------------------------------------------------------------------*/
68/*---------------------------------------------------------------------------*/
69
72{
73 ARCANE_CHECK_POINTER(factory);
74 m_serialize_step_factories.add(factory);
75}
76
77/*---------------------------------------------------------------------------*/
78/*---------------------------------------------------------------------------*/
79
82{
83 ARCANE_CHECK_POINTER(factory);
84 Integer index = -1;
85 for( Integer i=0, n=m_serialize_step_factories.size(); i<n; ++i ){
86 if (m_serialize_step_factories[i]==factory){
87 index = i;
88 break;
89 }
90 }
91 if (index==(-1))
92 throw ArgumentException(A_FUNCINFO,"factory not in list");
93 m_serialize_step_factories.remove(index);
94}
95
96/*---------------------------------------------------------------------------*/
97/*---------------------------------------------------------------------------*/
98
99ItemsExchangeInfo2* ItemFamilyPolicyMng::
100_createExchanger()
101{
102 return new ItemsExchangeInfo2(m_item_family);
103}
104
105/*---------------------------------------------------------------------------*/
106/*---------------------------------------------------------------------------*/
107
108}
109
110/*---------------------------------------------------------------------------*/
111/*---------------------------------------------------------------------------*/
#define ARCANE_CHECK_POINTER(ptr)
Macro retournant le pointeur ptr s'il est non nul ou lancant une exception s'il est nul.
Échange des entités et leurs caractéristiques pour une famille donnée.
Fabrique pour créer une étape de la sérialisation des familles d'entités.
Interface d'une étape de la sérialisation des familles d'entités.
Gère la sérialisation/désérialisation des entités d'une famille.
Sérialisation/Désérialisation indirecte des familles d'entités.
void addSerializeStep(IItemFamilySerializeStepFactory *factory) override
Ajoute une fabrique pour une étape de la sérialisation.
IItemFamilySerializer * createSerializer(bool with_flags) override
Créé une instance pour la sérialisation des entités. L'instance retournée doit être détruite par l'op...
void removeSerializeStep(IItemFamilySerializeStepFactory *factory) override
Supprime une fabrique pour une étape de la sérialisation.
IItemFamilyExchanger * createExchanger() override
Créé une instance pour l'échange d'entités entre sous-domaines. L'instance retournée doit être détrui...
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Exception lorsqu'un argument est invalide.
Exception lorsqu'une opération n'est pas supportée.