Arcane  v3.16.0.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
IControlDispatcher.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2025 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 * \internal
31 * \brief Manage control streams for parallel messages.
32 */
33class ARCCORE_MESSAGEPASSING_EXPORT IControlDispatcher
34{
35 public:
36
37 virtual ~IControlDispatcher() = default;
38
39 public:
40
41 virtual void waitAllRequests(ArrayView<Request> requests) = 0;
42
43 virtual void waitSomeRequests(ArrayView<Request> requests,
44 ArrayView<bool> indexes, bool is_non_blocking) = 0;
45
46 virtual IMessagePassingMng* commSplit(bool keep) = 0;
47
48 virtual void barrier() = 0;
49
50 virtual Request nonBlockingBarrier() = 0;
51
52 virtual MessageId probe(const PointToPointMessageInfo& message) = 0;
53
54 // NOTE novembre 2022
55 // Pour l'instant pas encore virtual pure pour rester compatible avec le code
56 // existant. L'implémentation lève une exception NotSupportedException
57 virtual MessageSourceInfo legacyProbe(const PointToPointMessageInfo& message);
58
59 //! Création d'une liste de requêtes associé à ce gestionnaire
61
62 public:
63
64 virtual IProfiler* profiler() const = 0;
65 virtual void setProfiler(IProfiler* p) = 0;
66};
67
68/*---------------------------------------------------------------------------*/
69/*---------------------------------------------------------------------------*/
70
71} // namespace Arcane::MessagePassing
72
73/*---------------------------------------------------------------------------*/
74/*---------------------------------------------------------------------------*/
75
76#endif
Déclarations des types de la composante 'base' de Arccore.
Déclarations générales de la composante 'message_passing'.
Gestion des références à une classe C++.
Vue modifiable d'un tableau d'un type T.
virtual Ref< IRequestList > createRequestListRef()=0
Création d'une liste de requêtes associé à ce gestionnaire.
Interface du gestionnaire des échanges de messages.
Interface d'un profiler pour les échanges de messages.
Definition IProfiler.h:31
Informations sur la source d'un message.
Informations pour envoyer/recevoir un message point à point.
Requête d'un message.
Definition Request.h:77
Référence à une instance.
Déclarations des types et méthodes utilisés par les mécanismes d'échange de messages.
Definition Parallel.h:50