Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
NodeFamilyPolicyMng.cc
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/* NodeFamilyPolicyMng.cc (C) 2000-2018 */
9/* */
10/* Gestionnaire des politiques d'une famille de noeuds. */
11/*---------------------------------------------------------------------------*/
12/*---------------------------------------------------------------------------*/
13
14#include "arcane/utils/NotSupportedException.h"
15
16#include "arcane/IMesh.h"
17#include "arcane/IItemFamilyNetwork.h"
18
19#include "arcane/mesh/ItemFamilyPolicyMng.h"
20#include "arcane/mesh/ItemFamilyCompactPolicy.h"
21#include "arcane/mesh/IndirectItemFamilySerializer.h"
22#include "arcane/mesh/NodeFamily.h"
23#include "arcane/mesh/ItemFamilySerializer.h"
24#include "arcane/mesh/DynamicMesh.h"
25#include "arcane/mesh/DynamicMeshIncrementalBuilder.h"
26
27/*---------------------------------------------------------------------------*/
28/*---------------------------------------------------------------------------*/
29
30ARCANE_BEGIN_NAMESPACE
31ARCANE_MESH_BEGIN_NAMESPACE
32
33/*---------------------------------------------------------------------------*/
34/*---------------------------------------------------------------------------*/
35
36/*---------------------------------------------------------------------------*/
37/*---------------------------------------------------------------------------*/
41class ARCANE_MESH_EXPORT NodeFamilyPolicyMng
43{
44 public:
45 NodeFamilyPolicyMng(NodeFamily* family)
46 : ItemFamilyPolicyMng(family,new StandardItemFamilyCompactPolicy(family))
47 , m_family(family){}
48 public:
50 {
51 if (use_flags)
52 throw NotSupportedException(A_FUNCINFO,"serialisation with 'use_flags==true'");
53 IMesh* mesh = m_family->mesh();
54 DynamicMesh* dmesh = ARCANE_CHECK_POINTER(dynamic_cast<DynamicMesh*>(mesh));
55 if(m_family->mesh()->useMeshItemFamilyDependencies())
56 return new ItemFamilySerializer(m_family, m_family, dmesh->incrementalBuilder());
57 else
58 return new IndirectItemFamilySerializer(m_family);
59 }
60 private:
61 NodeFamily* m_family;
62};
63
64/*---------------------------------------------------------------------------*/
65/*---------------------------------------------------------------------------*/
66
67extern "C++" ARCANE_MESH_EXPORT IItemFamilyPolicyMng*
68createNodeFamilyPolicyMng(ItemFamily* family)
69{
70 NodeFamily* f = ARCANE_CHECK_POINTER(dynamic_cast<NodeFamily*>(family));
71 return new NodeFamilyPolicyMng(f);
72}
73
74/*---------------------------------------------------------------------------*/
75/*---------------------------------------------------------------------------*/
76
77ARCANE_MESH_END_NAMESPACE
78ARCANE_END_NAMESPACE
79
80/*---------------------------------------------------------------------------*/
81/*---------------------------------------------------------------------------*/
#define ARCANE_CHECK_POINTER(ptr)
Macro retournant le pointeur ptr s'il est non nul ou lancant une exception s'il est nul.
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.
Gestionnaire des politiques d'une famille d'entités.
Sérialisation/Désérialisation des familles d'entités.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Gestionnaire des politiques d'une famille de noeuds.
IItemFamilySerializer * createSerializer(bool use_flags) override
Créé une instance pour la sérialisation des entités. L'instance retournée doit être détruite par l'op...
Exception lorsqu'une opération n'est pas supportée.