Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
SerializeMessage.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/* SerializeMessage.h (C) 2000-2020 */
9/* */
10/* Message utilisant un SerializeBuffer. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_SERIALIZEMESSAGE_H
13#define ARCANE_SERIALIZEMESSAGE_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arccore/message_passing/BasicSerializeMessage.h"
18#include "arcane/SerializeBuffer.h"
19
20/*---------------------------------------------------------------------------*/
21/*---------------------------------------------------------------------------*/
22
23namespace Arcane
24{
25using namespace Arccore::MessagePassing;
26using namespace Arccore::MessagePassing::internal;
27
28/*---------------------------------------------------------------------------*/
29/*---------------------------------------------------------------------------*/
30/*!
31 * \internal
32 * \brief Message utilisant un SerializeBuffer.
33 *
34 * Un message consiste en une série d'octets envoyés d'un rang
35 * (origRank()) à un autre (destRank()). Si isSend() est vrai,
36 * c'est origRank() qui envoie à destRank(), sinon c'est l'inverse.
37 * S'il s'agit d'un message de réception, le serializer() est alloué
38 * et remplit automatiquement.
39 *
40 * Pour que le parallélisme fonctionne correctement, il faut qu'un message
41 * complémentaire à celui-ci soit envoyé par destRank().
42 */
43class ARCANE_CORE_EXPORT SerializeMessage
45{
46 public:
47 SerializeMessage(Int32 orig_rank,Int32 dest_rank,eMessageType mtype);
48 SerializeMessage(Int32 orig_rank,MessageId message_id);
49 public:
50 ARCCORE_DEPRECATED_2020("Use BasicSerializeMessage::serializer() instead")
51 SerializeBuffer& buffer()
52 {
53 // Comme c'est cette classe qui a créé le serializer(), on est certain
54 // que la conversion est valide.
55 Arccore::BasicSerializer& x = BasicSerializeMessage::buffer();
56 return static_cast<SerializeBuffer&>(x);
57 }
58};
59
60/*---------------------------------------------------------------------------*/
61/*---------------------------------------------------------------------------*/
62
63} // End namespace Arcane
64
65/*---------------------------------------------------------------------------*/
66/*---------------------------------------------------------------------------*/
67
68#endif
69
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Espace de nommage contenant les types et déclarations qui gèrent le mécanisme de parallélisme par éch...
std::int32_t Int32
Type entier signé sur 32 bits.