37class ARCCORE_MESSAGEPASSING_EXPORT MessageId
63 m_message = null_message;
66 MessageId(
int return_value,
void* amessage)
67 : m_return_value(return_value)
70 m_message.v = amessage;
73 MessageId(
int return_value,
const void* amessage)
74 : m_return_value(return_value)
77 m_message.cv = amessage;
80 MessageId(
int return_value,
int amessage)
81 : m_return_value(return_value)
84 m_message.i = amessage;
87 MessageId(
int return_value,
long amessage)
88 : m_return_value(return_value)
91 m_message.l = amessage;
94 MessageId(
int return_value, std::size_t amessage)
95 : m_return_value(return_value)
98 m_message.st = amessage;
101 MessageId(
const MessageId& rhs)
102 : m_return_value(rhs.m_return_value)
105 m_message.cv = rhs.m_message.cv;
108 const MessageId& operator=(
const MessageId& rhs)
110 m_return_value = rhs.m_return_value;
112 m_message.cv = rhs.m_message.cv;
118 template <
typename T>
119 explicit operator const T*()
const {
return (
const T*)m_message.cv; }
120 template <
typename T>
121 explicit operator T*()
const {
return (T*)m_message.v; }
122 explicit operator int()
const {
return m_message.i; }
123 explicit operator long()
const {
return m_message.l; }
124 explicit operator size_t()
const {
return m_message.st; }
131 if (m_type == T_Null)
134 return m_message.i != null_message.i;
135 if (m_type == T_Long)
136 return m_message.l != null_message.l;
137 if (m_type == T_SizeT)
138 return m_message.st != null_message.st;
139 return m_message.cv != null_message.cv;
141 void* messageAsVoidPtr()
const {
return m_message.v; }
143 static void setNullMessage(MessageId r) { null_message = r.m_message; }
147 m_message = null_message;
150 void print(std::ostream& o)
const;
158 static _Message null_message;