Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
ItemPairGroupImpl.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/* ItemPairGroupImpl.h (C) 2000-2018 */
9/* */
10/* Implémentation d'un tableau de listes d'entités. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_ITEMPAIRGROUPIMPL_H
13#define ARCANE_ITEMPAIRGROUPIMPL_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/ItemTypes.h"
18#include "arcane/SharedReference.h"
19
20/*---------------------------------------------------------------------------*/
21/*---------------------------------------------------------------------------*/
22
23ARCANE_BEGIN_NAMESPACE
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27
28class IMesh;
29class ItemPairGroupImplPrivate;
30
31/*---------------------------------------------------------------------------*/
32/*---------------------------------------------------------------------------*/
37class ARCANE_CORE_EXPORT ItemPairGroupImpl
38: public SharedReference
39{
40 public:
41
42 public:
43
46 virtual ~ItemPairGroupImpl();
47
48 public:
49
50 static ItemPairGroupImpl* shared_null;
51 static ItemPairGroupImpl* checkSharedNull();
52
53 public:
54
55 virtual ISharedReference& sharedReference() { return *this; }
56
57 public:
58
60 const String& name() const;
61
63 virtual Integer nbRef() const { return refCount(); }
64
66 bool null() const;
67
69 IMesh* mesh() const;
70
72 eItemKind itemKind() const;
73
75 eItemKind subItemKind() const;
76
78 IItemFamily* itemFamily() const;
79
81 IItemFamily* subItemFamily() const;
82
84 const ItemGroup& itemGroup() const;
85
87 const ItemGroup& subItemGroup() const;
88
90 Integer size() const;
91
93 void invalidate(bool force_recompute);
94
96 void checkValid();
97
106 bool checkNeedUpdate();
107
110
114 Array<Int64>& unguardedIndexes() const;
115
119 Array<Int32>& unguardedLocalIds() const;
120
124 void setComputeFunctor(IFunctor* functor);
125
126 Int64ArrayView indexes();
127
128 Span<const Int32> subItemsLocalId();
129
130 private:
131
133
134 public:
135 virtual void addRef();
136 virtual void removeRef();
137 private:
138 virtual void deleteMe();
139};
140
141/*---------------------------------------------------------------------------*/
142/*---------------------------------------------------------------------------*/
143
144ARCANE_END_NAMESPACE
145
146/*---------------------------------------------------------------------------*/
147/*---------------------------------------------------------------------------*/
148
149#endif
Interface d'une famille d'entités.
Interface d'un compteur de référence.
Groupe d'entités de maillage.
Definition ItemGroup.h:49
Implémentation d'un tableau de listes d'entités.
ItemPairGroupImplPrivate * m_p
Implémentation du groupe.
Integer size() const
Nombre d'entités du groupe.
const String & name() const
Nom du groupe.
virtual Integer nbRef() const
Nombre de références sur le groupe.
void changeIds(IntegerConstArrayView old_to_new_ids)
Change les indices des entités du groupe.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Implémentation d'un compteur de référence utilisant std::atomic.
virtual void deleteMe()=0
Détruit l'objet référencé
void addRef() override
Incrémente le compteur de référence.
Int32 refCount() const override
Retourne la valeur du compteur de référence.
void removeRef() override
Décrémente le compteur de référence.
Vue modifiable d'un tableau d'un type T.
Vue constante d'un tableau de type T.
Chaîne de caractères unicode.
eItemKind
Genre d'entité de maillage.