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;