Arcane  v3.16.0.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
44 ItemPairGroupImpl();
45 ItemPairGroupImpl(const ItemGroup& group,const ItemGroup& sub_group);
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
109 void changeIds(IntegerConstArrayView old_to_new_ids);
110
115
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
Tableau d'items de types quelconques.
Interface d'une famille d'entités.
Definition IItemFamily.h:84
Interface d'un compteur de référence.
Groupe d'entités de maillage.
Definition ItemGroup.h:49
ItemPairGroupImplPrivate * m_p
Implémentation du groupe.
Integer size() const
Nombre d'entités du groupe.
const String & name() const
Nom du groupe.
bool checkNeedUpdate()
Réactualise le groupe si nécessaire.
void checkValid()
Vérifie que le groupe est valide.
Array< Int32 > & unguardedLocalIds() const
virtual Integer nbRef() const
Nombre de références sur le groupe.
Array< Int64 > & unguardedIndexes() const
void changeIds(IntegerConstArrayView old_to_new_ids)
Change les indices des entités du groupe.
void invalidate(bool force_recompute)
Invalide le groupe.
void setComputeFunctor(IFunctor *functor)
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 d'un tableau d'éléments de type T.
Definition Span.h:513
Chaîne de caractères unicode.
ArrayView< Int64 > Int64ArrayView
Equivalent C d'un tableau à une dimension d'entiers 64 bits.
Definition UtilsTypes.h:538
Int32 Integer
Type représentant un entier.
eItemKind
Genre d'entité de maillage.
ConstArrayView< Integer > IntegerConstArrayView
Equivalent C d'un tableau à une dimension d'entiers.
Definition UtilsTypes.h:573