Arcane  v3.16.0.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
ItemIndexedListView.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/* ItemIndexedListView.h (C) 2000-2023 */
9/* */
10/* Vue sur une liste indexée d'entités. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_ITEMINDEXEDLISTVIEW_H
13#define ARCANE_ITEMINDEXEDLISTVIEW_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/ArrayView.h"
18
19#include "arcane/core/ItemSharedInfo.h"
20#include "arcane/core/ItemLocalIdListContainerView.h"
21
22/*---------------------------------------------------------------------------*/
23/*---------------------------------------------------------------------------*/
24
25namespace Arcane::impl
26{
27
28/*---------------------------------------------------------------------------*/
29/*---------------------------------------------------------------------------*/
42template <int Extent>
43class ARCANE_CORE_EXPORT ItemIndexedListView
44{
45 static_assert(Extent == (-1), "only dynamic (-1) extent is currently supported");
46
47 friend ItemInternalConnectivityList;
48 friend ItemBase;
49 friend ItemVectorView;
50 friend ItemInternalVectorView;
51 friend class ItemConnectedListView<DynExtent>;
52 template <typename T> friend class Arcane::ItemEnumeratorBaseT;
53 template <typename T> friend class Arcane::ItemConnectedEnumeratorBaseT;
54
55 public:
56
57 ItemIndexedListView() = default;
58
59 private:
60
61 // TODO: A supprimer
62 constexpr ItemIndexedListView(ItemSharedInfo* si, SmallSpan<const Int32> local_ids, Int32 local_id_offset)
63 : m_local_ids(local_ids)
64 , m_shared_info(si)
65 , m_local_id_offset(local_id_offset)
66 {
67 ARCANE_ASSERT(m_shared_info, ("null shared_info"));
68 }
69
70 constexpr ItemIndexedListView(ItemSharedInfo* si, const impl::ItemLocalIdListContainerView& container_view)
71 : m_local_ids(container_view.m_local_ids, container_view.m_size)
72 , m_shared_info(si)
73 , m_local_id_offset(container_view.m_local_id_offset)
74 {
75 ARCANE_ASSERT(m_shared_info, ("null shared info"));
76 }
77
78 private:
79
81 constexpr Int32 size() const { return m_local_ids.size(); }
82
84 constexpr SmallSpan<const Int32, Extent> localIds() const { return m_local_ids; }
85
87 ConstArrayView<Int32> constLocalIds() const { return m_local_ids.constSmallView(); }
88
89 private:
90
92 ItemSharedInfo* m_shared_info = ItemSharedInfo::nullInstance();
93 Int32 m_local_id_offset;
94};
95
96/*---------------------------------------------------------------------------*/
97/*---------------------------------------------------------------------------*/
98
99} // namespace Arcane::impl
100
101/*---------------------------------------------------------------------------*/
102/*---------------------------------------------------------------------------*/
103
104#endif
Vue constante d'un tableau de type T.
Classe de base typeé des énumérateurs sur une liste d'entité connectées.
Vue sur une liste d'entités connectées à une autre entité.
Classe de base des énumérateurs sur une liste d'entité.
Structure interne partagée d'une entité de maillage.
Vue d'un tableau d'éléments de type T.
Definition Span.h:673
constexpr SmallSpan< const Int32, Extent > localIds() const
Tableau des numéros locaux des entités.
ConstArrayView< Int32 > constLocalIds() const
Tableau des numéros locaux des entités.
constexpr Int32 size() const
Nombre d'éléments du vecteur.
Vue sur le conteneur d'une liste de ItemLocalId.
constexpr Int32 DynExtent
Constante pour indiquer que la dimension d'un tableau est dynamique.
Definition BaseTypes.h:54
std::int32_t Int32
Type entier signé sur 32 bits.