Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
IContigMachineShMemWinBaseInternal.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/* IContigMachineShMemWinBaseInternal.h (C) 2000-2026 */
9/* */
10/* Class interface allowing the creation of a memory window for a node */
11/* of computation. This window will be contiguous in memory. */
12/*---------------------------------------------------------------------------*/
13#ifndef ARCCORE_MESSAGEPASSING_INTERNAL_ICONTIGMACHINESHMEMWINBASEINTERNAL_H
14#define ARCCORE_MESSAGEPASSING_INTERNAL_ICONTIGMACHINESHMEMWINBASEINTERNAL_H
15/*---------------------------------------------------------------------------*/
16/*---------------------------------------------------------------------------*/
17
19#include "arccore/collections/Array.h"
20
21/*---------------------------------------------------------------------------*/
22/*---------------------------------------------------------------------------*/
23
25{
26
27/*---------------------------------------------------------------------------*/
28/*---------------------------------------------------------------------------*/
29
37class ARCCORE_MESSAGEPASSING_EXPORT IContigMachineShMemWinBaseInternal
38{
39 public:
40
41 virtual ~IContigMachineShMemWinBaseInternal() = default;
42
43 public:
44
50 virtual Int32 sizeofOneElem() const = 0;
51
58
67
74
81
90
97
107 virtual void resizeSegment(Int64 new_sizeof_segment) = 0;
108
119
124 virtual void barrier() const = 0;
125};
126
127/*---------------------------------------------------------------------------*/
128/*---------------------------------------------------------------------------*/
129
130} // namespace Arcane::MessagePassing
131
132/*---------------------------------------------------------------------------*/
133/*---------------------------------------------------------------------------*/
134
135#endif
General declarations for the 'message_passing' component.
Constant view of an array of type T.
Class allowing the creation of a memory window for a node of computation.
virtual Span< std::byte > segmentView()=0
Method allowing the retrieval of a view of its segment.
virtual Span< const std::byte > segmentConstView(Int32 rank) const =0
Method allowing the retrieval of a view of the segment of another subdomain of the node.
virtual Span< std::byte > windowView()=0
Method allowing the retrieval of a view of the entire window.
virtual void resizeSegment(Int64 new_sizeof_segment)=0
Method allowing the resizing of the window segments.
virtual void barrier() const =0
Method allowing waiting until all processes/threads of the node call this method to continue executio...
virtual ConstArrayView< Int32 > machineRanks() const =0
Method allowing the retrieval of the ranks that possess a segment in the window.
virtual Span< const std::byte > segmentConstView() const =0
Method allowing the retrieval of a view of its segment.
virtual Int32 sizeofOneElem() const =0
Method allowing the retrieval of the size of an element in the window.
virtual Span< std::byte > segmentView(Int32 rank)=0
Method allowing the retrieval of a view of the segment of another subdomain of the node.
virtual Span< const std::byte > windowConstView() const =0
Method allowing the retrieval of a view of the entire window.
View of an array of elements of type T.
Definition Span.h:635
Declarations of types and methods used by message exchange mechanisms.
std::int64_t Int64
Signed integer type of 64 bits.
std::int32_t Int32
Signed integer type of 32 bits.