15#include "arcane/core/IItemFamily.h"
16#include "arcane/core/IParallelMng.h"
17#include "arcane/core/IMesh.h"
19#include "arcane/core/ConnectivityItemVector.h"
21#include "arcane/mesh/ItemFamilySerializer.h"
22#include "arcane/mesh/ItemFamilyNetwork.h"
36 m_family->traceMng()->debug(
Trace::High) <<
"_serializeItems : "
37 << m_family->mesh()->name() <<
" "
38 << m_family->name() <<
" "
39 << m_family->parentFamilyDepth();
43 ItemData item_dependencies_data(local_ids.
size(), 0, created_item_lids, m_family, m_family_modifier, m_family->parallelMng()->commRank());
44 _fillItemDependenciesData(item_dependencies_data, local_ids);
45 item_dependencies_data.serialize(buf);
54 _deserializeItemsOrRelations(buf, local_ids);
60void ItemFamilySerializer::
66 item_data.deserialize(buf, m_family->
mesh(), *local_ids);
69 item_data.deserialize(buf, m_family->
mesh());
82 m_family->traceMng()->debug(
Trace::High) <<
"_serializeItems relations : "
83 << m_family->mesh()->name() <<
" "
84 << m_family->name() <<
" "
85 << m_family->parentFamilyDepth();
89 ItemData item_relations_data(local_ids.
size(), 0, created_item_lids, m_family, m_family_modifier, m_family->parallelMng()->commRank());
90 _fillItemRelationsData(item_relations_data, local_ids);
91 item_relations_data.serialize(buf);
100 _deserializeItemsOrRelations(buf, local_ids);
106void ItemFamilySerializer::
109 Int64Array& item_infos = item_data.itemInfos();
113 item_infos.
reserve(1 + nb_item * 32);
117 item_infos.
add(out_connectivities.size());
119 item_infos.
add(item->type());
120 item_infos.
add(item->uniqueId().asInt64());
121 item_owners[item.index()] = item->owner();
122 for (
auto out_connectivity : out_connectivities) {
123 if (out_connectivity) {
124 item_infos.
add(out_connectivity->targetFamily()->itemKind());
125 item_infos.
add(out_connectivity->nbConnectedItem(
ItemLocalId(item)));
128 item_infos.
add(connected_item->uniqueId().asInt64());
135void ItemFamilySerializer::
139 Int64Array& item_infos = item_data.itemInfos();
143 item_infos.reserve(1 + nb_item * 32);
145 IItemFamilyNetwork* family_network = m_family->mesh()->itemFamilyNetwork();
147 item_infos.add(out_connectivities.size());
149 item_infos.add(item->type());
150 item_infos.add(item->uniqueId().asInt64());
151 item_owners[item.index()] = item->owner();
152 for (
auto out_connectivity : out_connectivities) {
153 item_infos.add(out_connectivity->targetFamily()->itemKind());
154 item_infos.add(out_connectivity->nbConnectedItem(ItemLocalId(item)));
155 ConnectivityItemVector connectivity_accessor(out_connectivity);
156 ENUMERATE_ITEM (connected_item, connectivity_accessor.connectedItems(ItemLocalId(item))) {
157 item_infos.add(connected_item->uniqueId().asInt64());
constexpr Integer size() const noexcept
Returns the size of the array.
void add(ConstReferenceType val)
Adds element val to the end of the array.
void reserve(Int64 new_capacity)
Reserves memory for new_capacity elements.
Manages the retrieval of connectivity information.
constexpr Integer size() const noexcept
Number of elements in the array.
virtual SharedArray< IIncrementalItemConnectivity * > getChildDependencies(IItemFamily *source_family)=0
Get the list of all dependencies, children of a family source_family or.
virtual SharedArray< IIncrementalItemConnectivity * > getChildRelations(IItemFamily *source_family)=0
Get the list of all relations, children of a family source_family or parents.
Interface of an entity family.
virtual IMesh * mesh() const =0
Associated mesh.
virtual ItemVectorView view(Int32ConstArrayView local_ids)=0
View on the entities.
virtual IItemFamilyNetwork * itemFamilyNetwork()=0
Family network interface (connected families).
Index of an Item in a variable.
void addFamilyItems(ItemData &item_info)
Ajout générique d'items d'une famille, décrite par son ItemInfo.
void serializeItemRelations(ISerializer *buf, Int32ConstArrayView cells_local_id) override
Serializes the relations of the entities of the family family() into buf.
void deserializeItems(ISerializer *buf, Int32Array *local_ids) override
Deserializes the entities of the family family() from buf.
IItemFamily * family() const override
Associated family.
void deserializeItemRelations(ISerializer *buf, Int32Array *cells_local_id) override
Deserializes the relations of the entities of the family family() from buf.
void serializeItems(ISerializer *buf, Int32ConstArrayView local_ids) override
Serializes the entities of the family family() into buf.
Array< Int64 > Int64Array
Dynamic one-dimensional array of 64-bit integers.
Int32 Integer
Type representing an integer.
ConstArrayView< Int32 > Int32ConstArrayView
C equivalent of a 1D array of 32-bit integers.
UniqueArray< Int32 > Int32UniqueArray
Dynamic 1D array of 32-bit integers.
ArrayView< Int32 > Int32ArrayView
C equivalent of a 1D array of 32-bit integers.
Array< Int32 > Int32Array
Dynamic one-dimensional array of 32-bit integers.