12#ifndef ARCCORE_MESSAGEPASSING_SENDRECEIVCEINFO_H
13#define ARCCORE_MESSAGEPASSING_MESSAGE_H
34class ARCCORE_MESSAGEPASSING_EXPORT MessageId
60 m_message = null_message;
63 MessageId(
int return_value,
void* amessage)
64 : m_return_value(return_value)
67 m_message.v = amessage;
70 MessageId(
int return_value,
const void* amessage)
71 : m_return_value(return_value)
74 m_message.cv = amessage;
77 MessageId(
int return_value,
int amessage)
78 : m_return_value(return_value)
81 m_message.i = amessage;
84 MessageId(
int return_value,
long amessage)
85 : m_return_value(return_value)
88 m_message.l = amessage;
91 MessageId(
int return_value,std::size_t amessage)
92 : m_return_value(return_value)
95 m_message.st = amessage;
98 MessageId(
const MessageId& rhs)
99 : m_return_value(rhs.m_return_value), m_type(rhs.m_type)
101 m_message.cv = rhs.m_message.cv;
104 const MessageId& operator=(
const MessageId& rhs)
106 m_return_value = rhs.m_return_value;
108 m_message.cv = rhs.m_message.cv;
115 explicit operator const T*()
const {
return (
const T*)m_message.cv; }
117 explicit operator T*()
const {
return (T*)m_message.v; }
118 explicit operator int()
const {
return m_message.i; }
119 explicit operator long()
const {
return m_message.l; }
120 explicit operator size_t()
const {
return m_message.st; }
130 return m_message.i!=null_message.i;
132 return m_message.l!=null_message.l;
134 return m_message.st!=null_message.st;
135 return m_message.cv!=null_message.cv;
137 void* messageAsVoidPtr()
const {
return m_message.v; }
139 static void setNullMessage(MessageId r) { null_message = r.m_message; }
142 m_message = null_message;
145 void print(std::ostream& o)
const;
153 static _Message null_message;
160operator<<(std::ostream& o,
const MessageId& pmessage)
Déclarations générales de la composante 'message_passing'.
std::ostream & operator<<(std::ostream &ostr, eItemKind item_kind)
Opérateur de sortie sur un flot.
Espace de nommage contenant les types et déclarations qui gèrent le mécanisme de parallélisme par éch...