Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
ItemInternalEnumerator.h
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/* ItemInternalEnumerator.h (C) 2000-2023 */
9/* */
10/* Enumérateur sur une liste de ItemInternal. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_ITEMINTERNALENUMERATOR_H
13#define ARCANE_ITEMINTERNALENUMERATOR_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/ItemInternalVectorView.h"
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Arcane
23{
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27
28class ItemInternal;
29class ItemEnumerator;
30
31/*---------------------------------------------------------------------------*/
32/*---------------------------------------------------------------------------*/
40{
41 private:
42
44 friend class ItemEnumerator;
45
46 public:
47
48 ARCANE_DEPRECATED_REASON("Y2022: This class is deprecated. Use ItemEnumerator instead")
49 ItemInternalEnumerator(const ItemInternalPtr* items, const Int32* local_ids, Integer n)
50 : m_items(items)
51 , m_local_ids(local_ids)
52 , m_index(0)
53 , m_count(n)
54 {
55 }
56
57 ARCANE_DEPRECATED_REASON("Y2022: This class is deprecated. Use ItemEnumerator instead")
59 : m_items(view._items().data())
60 , m_local_ids(view.localIds().data())
61 , m_index(0)
62 , m_count(view.size())
63 {}
64
65 ARCANE_DEPRECATED_REASON("Y2022: This class is deprecated. Use ItemEnumerator instead")
67 : m_items(items.data())
68 , m_local_ids(local_ids.data())
69 , m_index(0)
70 , m_count(local_ids.size())
71 {}
72
73 public:
74
75 ItemInternal* operator*() const { return m_items[m_local_ids[m_index]]; }
76 ItemInternal* operator->() const { return m_items[m_local_ids[m_index]]; }
77 inline void operator++() { ++m_index; }
78 inline bool operator()() { return m_index < m_count; }
79 inline bool hasNext() { return m_index < m_count; }
80
82 inline Integer count() const { return m_count; }
83
85 inline Integer index() const { return m_index; }
86
88 inline Integer localId() const { return m_local_ids[m_index]; }
89
90 protected:
91
92 const ItemInternalPtr* m_items;
93 const Int32* ARCANE_RESTRICT m_local_ids;
94 Integer m_index;
95 Integer m_count;
96};
97
98/*---------------------------------------------------------------------------*/
99/*---------------------------------------------------------------------------*/
100
101} // namespace Arcane
102
103/*---------------------------------------------------------------------------*/
104/*---------------------------------------------------------------------------*/
105
106#endif
Enumérateur sur une liste d'entités.
Enumérateur sur une liste d'entités.
Integer index() const
Indice courant de l'énumérateur.
Integer localId() const
localId() de l'entité courante.
Integer count() const
Nombre d'éléments de l'énumérateur.
Vue interne sur un tableau d'entités.
Int32ConstArrayView localIds() const
Tableau des numéros locaux des entités.
Integer size() const
Nombre d'éléments du vecteur.
Structure interne d'une entité de maillage.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Vue constante d'un tableau de type T.
constexpr const_pointer data() const noexcept
Pointeur sur la mémoire allouée.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-