Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
MessageSourceInfo.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/* MessageSourceInfo.h (C) 2000-2022 */
9/* */
10/* Informations sur la source d'un message. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCCORE_MESSAGEPASSING_MESSAGESOURCEINFO_H
13#define ARCCORE_MESSAGEPASSING_MESSAGESOURCEINFO_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arccore/message_passing/MessageTag.h"
18#include "arccore/message_passing/MessageRank.h"
19
20/*---------------------------------------------------------------------------*/
21/*---------------------------------------------------------------------------*/
22
24{
25
26/*---------------------------------------------------------------------------*/
27/*---------------------------------------------------------------------------*/
28/*!
29 * \brief Informations sur la source d'un message.
30 *
31 * Ces informations sont utilisées pour récupérer les informations d'un
32 * message suite à un appel à mpProbe() ou mpLegacyProbe().
33 * L'instance retournée peut-être utilisée pour faire une réception via mpReceive().
34 */
35class ARCCORE_MESSAGEPASSING_EXPORT MessageSourceInfo
36{
37 public:
38
39 //! Créé une source correspondant à aucun message (isValid()==false)
40 MessageSourceInfo() = default;
41
42 /*!
43 * \brief Créé une source correspondant au rang \a rank et au tag \a tag.
44 *
45 * Si \a rank.isNull() ou tag.isNull(), alors isValid() vaudra \a false.
46 */
48 : m_rank(rank)
49 , m_tag(tag)
50 , m_size(size)
51 {}
52
53 public:
54
55 //! Rang de la source
56 MessageRank rank() const { return m_rank; }
57
58 //! Positionne le rang de la source
59 void setRank(MessageRank rank) { m_rank = rank; }
60
61 //! Tag du message
62 MessageTag tag() const { return m_tag; }
63
64 //! Positionne le tag du message
65 void setTag(MessageTag tag) { m_tag = tag; }
66
67 //! Taille du message
68 Int64 size() const { return m_size; }
69
70 //! Positionne la taille du message
71 void setSize(Int64 size) { m_size = size; }
72
73 //! Indique si la source est valide
74 bool isValid() const { return !m_rank.isNull() && !m_tag.isNull(); }
75
76 private:
77
78 MessageRank m_rank;
79 MessageTag m_tag;
80 Int64 m_size = 0;
81};
82
83/*---------------------------------------------------------------------------*/
84/*---------------------------------------------------------------------------*/
85
86} // End namespace Arccore::MessagePassing
87
88/*---------------------------------------------------------------------------*/
89/*---------------------------------------------------------------------------*/
90
91#endif
92
Informations sur la source d'un message.
MessageTag tag() const
Tag du message.
MessageSourceInfo()=default
Créé une source correspondant à aucun message (isValid()==false)
void setSize(Int64 size)
Positionne la taille du message.
MessageSourceInfo(MessageRank rank, MessageTag tag, Int64 size)
Créé une source correspondant au rang rank et au tag tag.
Int64 size() const
Taille du message.
MessageRank rank() const
Rang de la source.
bool isValid() const
Indique si la source est valide.
void setTag(MessageTag tag)
Positionne le tag du message.
void setRank(MessageRank rank)
Positionne le rang de la source.
Espace de nommage contenant les types et déclarations qui gèrent le mécanisme de parallélisme par éch...
std::int64_t Int64
Type entier signé sur 64 bits.