Arcane  v3.14.10.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-2022 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-2022 */
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 virtual ~IControlDispatcher() = default;
37
38 public:
39 virtual void waitAllRequests(ArrayView<Request> requests) =0;
40
41 virtual void waitSomeRequests(ArrayView<Request> requests,
42 ArrayView<bool> indexes, bool is_non_blocking) =0;
43
44 virtual IMessagePassingMng* commSplit(bool keep) =0;
45
46 virtual void barrier() =0;
47
48 virtual Request nonBlockingBarrier() =0;
49
50 virtual MessageId probe(const PointToPointMessageInfo& message) =0;
51
52 // NOTE novembre 2022
53 // Pour l'instant pas encore virtual pure pour rester compatible avec le code
54 // existant. L'implémentation lève une exception NotSupportedException
55 virtual MessageSourceInfo legacyProbe(const PointToPointMessageInfo& message);
56
57 //! Création d'une liste de requêtes associé à ce gestionnaire
58 virtual Ref<IRequestList> createRequestListRef() =0;
59
60 public:
61
62 virtual IProfiler* profiler() const =0;
63 virtual void setProfiler(IProfiler* p) =0;
64};
65
66/*---------------------------------------------------------------------------*/
67/*---------------------------------------------------------------------------*/
68
69} // End namespace Arccore::MessagePassing
70
71/*---------------------------------------------------------------------------*/
72/*---------------------------------------------------------------------------*/
73
74#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
Espace de nommage contenant les types et déclarations qui gèrent le mécanisme de parallélisme par éch...