Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
ParallelDataWriter.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2026 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/* ParallelDataWriter.h (C) 2000-2024 */
9/* */
10/* Parallel IData writer. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_STD_INTERNAL_PARALLELDATAWRITER_H
13#define ARCANE_STD_INTERNAL_PARALLELDATAWRITER_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18
19#include <map>
20
21/*---------------------------------------------------------------------------*/
22/*---------------------------------------------------------------------------*/
23
24namespace Arcane
25{
26
27/*---------------------------------------------------------------------------*/
28/*---------------------------------------------------------------------------*/
29
35class ParallelDataWriter
36{
37 class Impl;
38
39 public:
40
41 explicit ParallelDataWriter(IParallelMng* pm);
42 ParallelDataWriter(const ParallelDataWriter& rhs) = delete;
43 ~ParallelDataWriter();
44
45 public:
46
47 Int64ConstArrayView sortedUniqueIds() const;
48 void setGatherAll(bool v);
49 void sort(Int32ConstArrayView local_ids, Int64ConstArrayView items_uid);
50 Ref<IData> getSortedValues(IData* data);
51
52 private:
53
54 Impl* m_p;
55};
56
57/*---------------------------------------------------------------------------*/
58/*---------------------------------------------------------------------------*/
59
64{
65 public:
66
67 Ref<ParallelDataWriter> getOrCreateWriter(const ItemGroup& group);
68
69 private:
70
71 std::map<ItemGroup, Ref<ParallelDataWriter>> m_data_writers;
72};
73
74/*---------------------------------------------------------------------------*/
75/*---------------------------------------------------------------------------*/
76
77} // End namespace Arcane
78
79/*---------------------------------------------------------------------------*/
80/*---------------------------------------------------------------------------*/
81
82#endif
Declarations of Arcane's general types.
Interface of a data item.
Definition IData.h:34
Interface of the parallelism manager for a subdomain.
Mesh entity group.
Definition ItemGroup.h:51
list of 'ParallelDataWriter'.
Reference to an instance.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
ConstArrayView< Int32 > Int32ConstArrayView
C equivalent of a 1D array of 32-bit integers.
Definition UtilsTypes.h:482
ConstArrayView< Int64 > Int64ConstArrayView
C equivalent of a 1D array of 64-bit integers.
Definition UtilsTypes.h:480