Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
CellFamilyPolicyMng.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/* CellFamilyPolicyMng.cc (C) 2000-2018 */
9/* */
10/* Gestionnaire des politiques d'une famille de mailles. */
11/*---------------------------------------------------------------------------*/
12/*---------------------------------------------------------------------------*/
13
14#include "arcane/IItemFamilyNetwork.h"
15
16#include "arcane/mesh/ItemFamilyPolicyMng.h"
17#include "arcane/mesh/ItemFamilyCompactPolicy.h"
18#include "arcane/mesh/CellFamilySerializer.h"
19#include "arcane/mesh/CellFamily.h"
20#include "arcane/mesh/DynamicMesh.h"
21#include "arcane/mesh/ItemFamilySerializer.h"
22
23
24/*---------------------------------------------------------------------------*/
25/*---------------------------------------------------------------------------*/
26
27ARCANE_BEGIN_NAMESPACE
28ARCANE_MESH_BEGIN_NAMESPACE
29
30/*---------------------------------------------------------------------------*/
31/*---------------------------------------------------------------------------*/
32
33/*---------------------------------------------------------------------------*/
34/*---------------------------------------------------------------------------*/
38class ARCANE_MESH_EXPORT CellFamilyPolicyMng
40{
41 public:
42 CellFamilyPolicyMng(CellFamily* family)
43 : ItemFamilyPolicyMng(family,new StandardItemFamilyCompactPolicy(family))
44 , m_family(family){}
45 public:
47 {
48 IMesh* mesh = m_family->mesh();
49 DynamicMesh* dmesh = ARCANE_CHECK_POINTER(dynamic_cast<DynamicMesh*>(mesh));
50 // Todo use unique_ptr ?
52 return new ItemFamilySerializer(m_family, m_family, dmesh->incrementalBuilder());
53 else
54 return new CellFamilySerializer(m_family,use_flags,dmesh->incrementalBuilder());
55
56 }
57 private:
58 CellFamily* m_family;
59};
60
61/*---------------------------------------------------------------------------*/
62/*---------------------------------------------------------------------------*/
63
64extern "C++" ARCANE_MESH_EXPORT IItemFamilyPolicyMng*
65createCellFamilyPolicyMng(ItemFamily* family)
66{
67 CellFamily* f = ARCANE_CHECK_POINTER(dynamic_cast<CellFamily*>(family));
68 return new CellFamilyPolicyMng(f);
69}
70
71/*---------------------------------------------------------------------------*/
72/*---------------------------------------------------------------------------*/
73
74ARCANE_MESH_END_NAMESPACE
75ARCANE_END_NAMESPACE
76
77/*---------------------------------------------------------------------------*/
78/*---------------------------------------------------------------------------*/
#define ARCANE_CHECK_POINTER(ptr)
Macro retournant le pointeur ptr s'il est non nul ou lancant une exception s'il est nul.
Gestionnaire des politiques d'une famille de mailles.
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...
Gère la sérialisation/désérialisation des entités d'une famille.
virtual bool useMeshItemFamilyDependencies() const =0
check if the network itemFamily dependencies is activated
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