<
html
>
<
head
>
<
title
>PTypes: multithreading: message</
title
>
<
meta
http-equiv
=
"Content-Type"
content
=
"text/html; charset=iso-8859-1"
>
<
link
rel
=
"stylesheet"
href
=
"styles.css"
>
</
head
>
<
body
bgcolor
=
"#FFFFFF"
leftmargin
=
"40"
marginwidth
=
"40"
>
<
p
><
a
href
=
"../index.html"
><
img
src
=
"title-21.png"
width
=
"253"
height
=
"39"
alt
=
"C++ Portable Types Library (PTypes) Version 2.1"
border
=
"0"
></
a
>
<
hr
size
=
"1"
noshade>
<
p
class
=
"hpath"
><
a
href
=
"index.html"
>Top</
a
>: <
a
href
=
"async.html"
>Multithreading</
a
>:
message</
p
>
<
blockquote
>
<
pre
class
=
"lang"
>#include <
pasync.h
>
struct message {
int id;
pintptr param;
pintptr result;
message(int id, pintptr param = 0);
}</
pre
>
</
blockquote
>
<
p
>A <
span
class
=
"lang"
>message</
span
> object or an object of a derived class
can be used to post data to message queues (<
a
href
=
"async.msgqueue.html"
>msgqueue</
a
>)
or job queues (<
a
href
=
"async.jobqueue.html"
>jobqueue</
a
>). Messages are distinguished
by a ID that are defined in your application. The user message IDs can be in the
range <
span
class
=
"lang"
>0</
span
> through <
span
class
=
"lang"
>INT_MAX</
span
>. Negative
values are reserved for internal use by the library.</
p
>
<
p
>A simple message can also contain an additional parameter of type <
span
class
=
"lang"
>pintptr</
span
>,
which is an integer with a size equal to the size of a pointer on the given platform.
For more complex message structures you can define classes derived from <
span
class
=
"lang"
>message
</
span
> - the message queue manager can work with any descendant class as well.</
p
>
<
p
><
span
class
=
"def"
>message::message(int id, pintptr param = 0)</
span
> constructs
a message object and assigns <
span
class
=
"lang"
>id</
span
> and <
span
class
=
"lang"
>param</
span
>
fields. <
span
class
=
"lang"
>param</
span
> is an additional field that can be used
in your application at your own discretion.</
p
>
<
p
><
span
class
=
"def"
>int message::id</
span
> -- this field contains a message ID
assigned through the constructor.</
p
>
<
p
><
span
class
=
"def"
>pintptr message::param</
span
> contains the optional parameter.</
p
>
<
p
><
span
class
=
"def"
>pintptr message::result</
span
> -- through this field a message
handler can return some simple answer to the sender of this message.</
p
>
<
p
class
=
"seealso"
>See also: <
a
href
=
"async.msgqueue.html"
>msgqueue</
a
>, <
a
href
=
"async.jobqueue.html"
>jobqueue</
a
>,
<
a
href
=
"async.examples.html"
>Examples</
a
></
p
>
<
hr
size
=
"1"
>
<
a
href
=
"../index.html"
class
=
"ns"
>PTypes home</
a
>
</
body
>
</
html
>