Arcane  v3.14.10.0
Documentation utilisateur
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/*---------------------------------------------------------------------------*/
33/*!
34 * \internal
35 * \brief Enumérateur sur une liste d'entités.
36 * \deprecated Cette classe est obsolète et ne doit plus être utilisée. Il
37 * faut utiliser ItemEnumerator à la place.
38 */
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
81 //! Nombre d'éléments de l'énumérateur
82 inline Integer count() const { return m_count; }
83
84 //! Indice courant de l'énumérateur
85 inline Integer index() const { return m_index; }
86
87 //! localId() de l'entité courante.
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.
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.
Int32ConstArrayView localIds() const
Tableau des numéros locaux des entités.
Integer size() const
Nombre d'éléments du vecteur.
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 -*-