Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
IControlDispatcher.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/* IControlDispatcher.h (C) 2000-2025 */
9/* */
10/* Manage Control/Utility parallel messages. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCCORE_MESSAGEPASSING_ICONTROLDISPATCHER_H
13#define ARCCORE_MESSAGEPASSING_ICONTROLDISPATCHER_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18#include "arccore/collections/CollectionsGlobal.h"
20#include "arccore/base/Ref.h"
21
22/*---------------------------------------------------------------------------*/
23/*---------------------------------------------------------------------------*/
24
26{
27
28/*---------------------------------------------------------------------------*/
29/*---------------------------------------------------------------------------*/
30
35class ARCCORE_MESSAGEPASSING_EXPORT IControlDispatcher
36{
37 public:
38
39 virtual ~IControlDispatcher() = default;
40
41 public:
42
43 virtual void waitAllRequests(ArrayView<Request> requests) = 0;
44
45 virtual void waitSomeRequests(ArrayView<Request> requests,
46 ArrayView<bool> indexes, bool is_non_blocking) = 0;
47
48 virtual IMessagePassingMng* commSplit(bool keep) = 0;
49
50 virtual void barrier() = 0;
51
52 virtual Request nonBlockingBarrier() = 0;
53
54 virtual MessageId probe(const PointToPointMessageInfo& message) = 0;
55
56 // NOTE November 2022
57 // For now, it is not yet a pure virtual function to remain compatible with the code
58 // existing. The implementation raises a NotSupportedException.
59 virtual MessageSourceInfo legacyProbe(const PointToPointMessageInfo& message);
60
63
64 public:
65
66 virtual IProfiler* profiler() const = 0;
67 virtual void setProfiler(IProfiler* p) = 0;
68};
69
70/*---------------------------------------------------------------------------*/
71/*---------------------------------------------------------------------------*/
72
73} // namespace Arcane::MessagePassing
74
75/*---------------------------------------------------------------------------*/
76/*---------------------------------------------------------------------------*/
77
78#endif
Declarations of types for the 'base' component of Arccore.
General declarations for the 'message_passing' component.
Management of references to a C++ class.
Modifiable view of an array of type T.
Manage control streams for parallel messages.
virtual Ref< IRequestList > createRequestListRef()=0
Creation of a request list associated with this manager.
Interface of the message passing manager.
Interface of a profiler for message exchanges.
Definition IProfiler.h:32
Information about the source of a message.
Information for sending/receiving a point-to-point message.
Reference to an instance.
Declarations of types and methods used by message exchange mechanisms.