Sophie

Sophie

distrib > Mageia > 4 > x86_64 > by-pkgid > 2a875389679174165acfcd7ad05f0b8e > files > 101

lib64prelude-devel-1.0.1-8.mga4.x86_64.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>prelude-msg</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="index.html" title="Prelude library Reference Manual">
<link rel="up" href="ch04.html" title="Others">
<link rel="prev" href="libprelude-prelude-log.html" title="prelude-log">
<link rel="next" href="libprelude-prelude-option.html" title="prelude-option">
<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
<tr valign="middle">
<td><a accesskey="p" href="libprelude-prelude-log.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="ch04.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">Prelude library Reference Manual</th>
<td><a accesskey="n" href="libprelude-prelude-option.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr>
<tr><td colspan="5" class="shortcuts">
<a href="#libprelude-prelude-msg.synopsis" class="shortcut">Top</a>
                   | 
                  <a href="#libprelude-prelude-msg.description" class="shortcut">Description</a>
</td></tr>
</table>
<div class="refentry">
<a name="libprelude-prelude-msg"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="libprelude-prelude-msg.top_of_page"></a>prelude-msg</span></h2>
<p>prelude-msg — Prelude Messaging API</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsynopsisdiv">
<a name="libprelude-prelude-msg.synopsis"></a><h2>Synopsis</h2>
<pre class="synopsis">typedef             <a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t">prelude_msg_t</a>;
enum                <a class="link" href="libprelude-prelude-msg.html#prelude-msg-priority-t" title="enum prelude_msg_priority_t">prelude_msg_priority_t</a>;
<span class="returnvalue">int</span>                 <a class="link" href="libprelude-prelude-msg.html#prelude-msg-read" title="prelude_msg_read ()">prelude_msg_read</a>                    (<em class="parameter"><code><a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> **msg</code></em>,
                                                         <em class="parameter"><code><a class="link" href="libprelude-prelude-io.html#prelude-io-t" title="prelude_io_t"><span class="type">prelude_io_t</span></a> *pio</code></em>);
<span class="returnvalue">int</span>                 <a class="link" href="libprelude-prelude-msg.html#prelude-msg-forward" title="prelude_msg_forward ()">prelude_msg_forward</a>                 (<em class="parameter"><code><a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> *msg</code></em>,
                                                         <em class="parameter"><code><a class="link" href="libprelude-prelude-io.html#prelude-io-t" title="prelude_io_t"><span class="type">prelude_io_t</span></a> *dst</code></em>,
                                                         <em class="parameter"><code><a class="link" href="libprelude-prelude-io.html#prelude-io-t" title="prelude_io_t"><span class="type">prelude_io_t</span></a> *src</code></em>);
<span class="returnvalue">int</span>                 <a class="link" href="libprelude-prelude-msg.html#prelude-msg-get" title="prelude_msg_get ()">prelude_msg_get</a>                     (<em class="parameter"><code><a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> *msg</code></em>,
                                                         <em class="parameter"><code><a class="link" href="libprelude-prelude-inttypes.html#uint8-t" title="uint8_t"><span class="type">uint8_t</span></a> *tag</code></em>,
                                                         <em class="parameter"><code><a class="link" href="libprelude-prelude-inttypes.html#uint32-t" title="uint32_t"><span class="type">uint32_t</span></a> *len</code></em>,
                                                         <em class="parameter"><code><span class="type">void</span> **buf</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="libprelude-prelude-msg.html#prelude-msg-recycle" title="prelude_msg_recycle ()">prelude_msg_recycle</a>                 (<em class="parameter"><code><a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> *msg</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="libprelude-prelude-msg.html#prelude-msg-mark-end" title="prelude_msg_mark_end ()">prelude_msg_mark_end</a>                (<em class="parameter"><code><a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> *msg</code></em>);
<span class="returnvalue">int</span>                 <a class="link" href="libprelude-prelude-msg.html#prelude-msg-dynamic-new" title="prelude_msg_dynamic_new ()">prelude_msg_dynamic_new</a>             (<em class="parameter"><code><a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> **ret</code></em>,
                                                         <em class="parameter"><code><span class="type">int</span> (*flush_msg_cb) (prelude_msg_t **msg, void *data)</code></em>,
                                                         <em class="parameter"><code><span class="type">void</span> *data</code></em>);
<span class="returnvalue">int</span>                 <a class="link" href="libprelude-prelude-msg.html#prelude-msg-new" title="prelude_msg_new ()">prelude_msg_new</a>                     (<em class="parameter"><code><a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> **ret</code></em>,
                                                         <em class="parameter"><code><span class="type">size_t</span> msgcount</code></em>,
                                                         <em class="parameter"><code><span class="type">size_t</span> msglen</code></em>,
                                                         <em class="parameter"><code><a class="link" href="libprelude-prelude-inttypes.html#uint8-t" title="uint8_t"><span class="type">uint8_t</span></a> tag</code></em>,
                                                         <em class="parameter"><code><a class="link" href="libprelude-prelude-msg.html#prelude-msg-priority-t" title="enum prelude_msg_priority_t"><span class="type">prelude_msg_priority_t</span></a> priority</code></em>);
<span class="returnvalue">int</span>                 <a class="link" href="libprelude-prelude-msg.html#prelude-msg-set" title="prelude_msg_set ()">prelude_msg_set</a>                     (<em class="parameter"><code><a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> *msg</code></em>,
                                                         <em class="parameter"><code><a class="link" href="libprelude-prelude-inttypes.html#uint8-t" title="uint8_t"><span class="type">uint8_t</span></a> tag</code></em>,
                                                         <em class="parameter"><code><a class="link" href="libprelude-prelude-inttypes.html#uint32-t" title="uint32_t"><span class="type">uint32_t</span></a> len</code></em>,
                                                         <em class="parameter"><code>const <span class="type">void</span> *data</code></em>);
<span class="returnvalue">int</span>                 <a class="link" href="libprelude-prelude-msg.html#prelude-msg-write" title="prelude_msg_write ()">prelude_msg_write</a>                   (<em class="parameter"><code><a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> *msg</code></em>,
                                                         <em class="parameter"><code><a class="link" href="libprelude-prelude-io.html#prelude-io-t" title="prelude_io_t"><span class="type">prelude_io_t</span></a> *dst</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="libprelude-prelude-msg.html#prelude-msg-set-tag" title="prelude_msg_set_tag ()">prelude_msg_set_tag</a>                 (<em class="parameter"><code><a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> *msg</code></em>,
                                                         <em class="parameter"><code><a class="link" href="libprelude-prelude-inttypes.html#uint8-t" title="uint8_t"><span class="type">uint8_t</span></a> tag</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="libprelude-prelude-msg.html#prelude-msg-set-priority" title="prelude_msg_set_priority ()">prelude_msg_set_priority</a>            (<em class="parameter"><code><a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> *msg</code></em>,
                                                         <em class="parameter"><code><a class="link" href="libprelude-prelude-msg.html#prelude-msg-priority-t" title="enum prelude_msg_priority_t"><span class="type">prelude_msg_priority_t</span></a> priority</code></em>);
<a class="link" href="libprelude-prelude-inttypes.html#uint8-t" title="uint8_t"><span class="returnvalue">uint8_t</span></a>             <a class="link" href="libprelude-prelude-msg.html#prelude-msg-get-tag" title="prelude_msg_get_tag ()">prelude_msg_get_tag</a>                 (<em class="parameter"><code><a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> *msg</code></em>);
<a class="link" href="libprelude-prelude-msg.html#prelude-msg-priority-t" title="enum prelude_msg_priority_t"><span class="returnvalue">prelude_msg_priority_t</span></a> <a class="link" href="libprelude-prelude-msg.html#prelude-msg-get-priority" title="prelude_msg_get_priority ()">prelude_msg_get_priority</a>         (<em class="parameter"><code><a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> *msg</code></em>);
<a class="link" href="libprelude-prelude-inttypes.html#uint32-t" title="uint32_t"><span class="returnvalue">uint32_t</span></a>            <a class="link" href="libprelude-prelude-msg.html#prelude-msg-get-len" title="prelude_msg_get_len ()">prelude_msg_get_len</a>                 (<em class="parameter"><code><a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> *msg</code></em>);
<a class="link" href="libprelude-prelude-inttypes.html#uint32-t" title="uint32_t"><span class="returnvalue">uint32_t</span></a>            <a class="link" href="libprelude-prelude-msg.html#prelude-msg-get-datalen" title="prelude_msg_get_datalen ()">prelude_msg_get_datalen</a>             (<em class="parameter"><code><a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> *msg</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="libprelude-prelude-msg.html#prelude-msg-destroy" title="prelude_msg_destroy ()">prelude_msg_destroy</a>                 (<em class="parameter"><code><a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> *msg</code></em>);
struct <span class="returnvalue">timeval</span> *    <a class="link" href="libprelude-prelude-msg.html#prelude-msg-get-time" title="prelude_msg_get_time ()">prelude_msg_get_time</a>                (<em class="parameter"><code><a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> *msg</code></em>,
                                                         <em class="parameter"><code><span class="type">struct timeval</span> *tv</code></em>);
<span class="returnvalue">int</span>                 <a class="link" href="libprelude-prelude-msg.html#prelude-msg-is-empty" title="prelude_msg_is_empty ()">prelude_msg_is_empty</a>                (<em class="parameter"><code><a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> *msg</code></em>);
<span class="returnvalue">int</span>                 <a class="link" href="libprelude-prelude-msg.html#prelude-msg-is-fragment" title="prelude_msg_is_fragment ()">prelude_msg_is_fragment</a>             (<em class="parameter"><code><a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> *msg</code></em>);
<a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="returnvalue">prelude_msg_t</span></a> *     <a class="link" href="libprelude-prelude-msg.html#prelude-msg-ref" title="prelude_msg_ref ()">prelude_msg_ref</a>                     (<em class="parameter"><code><a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> *msg</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="libprelude-prelude-msg.html#prelude-msg-set-callback" title="prelude_msg_set_callback ()">prelude_msg_set_callback</a>            (<em class="parameter"><code><a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> *msg</code></em>,
                                                         <em class="parameter"><code><span class="type">int</span> (*flush_msg_cb) (prelude_msg_t **msg, void *data)</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="libprelude-prelude-msg.html#prelude-msg-set-data" title="prelude_msg_set_data ()">prelude_msg_set_data</a>                (<em class="parameter"><code><a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> *msg</code></em>,
                                                         <em class="parameter"><code><span class="type">void</span> *data</code></em>);
const unsigned <span class="returnvalue">char</span> * <a class="link" href="libprelude-prelude-msg.html#prelude-msg-get-message-data" title="prelude_msg_get_message_data ()">prelude_msg_get_message_data</a>      (<em class="parameter"><code><a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> *msg</code></em>);
</pre>
</div>
<div class="refsect1">
<a name="libprelude-prelude-msg.description"></a><h2>Description</h2>
<p>
This Mesaging API is used for differents Prelude program to communicate
together. It feature compatibility between version, and use a way to describe
data similar to XML.
</p>
<p>
The Message header contain the protocol version, which is only to be used
in case the main protocol structure change (compatibility break), The tag
describe the kind of message, The fragment field may be used if a message
is sent in several time, The priority may be used by the receiving end
to priorityze task, The datalen contain the size of the whole message in
network byte order
</p>
<pre class="programlisting">
   8bits    8bits   8bits     8bits                32bits
+--------+--------+--------+----------+------------------------------+
|version |   tag  |priority| fragment |            datalen           |
+--------+--------+--------+----------+------------------------------+
</pre>
<p>
</p>
<p>
Then the message itself contain submessage composed of :
A tag describing the kind of payload, the len of the payload (in network byte order),
the payload itself, and an end of message byte (0xff) in order to resynchronize in
case of problem.
</p>
<pre class="programlisting">
  8bits              32bits                                   8bits
+--------+--------------------------------+-----------------+--------+
|  tag   |             len                |     payload     |  0xff  |
+--------+--------------------------------+-----------------+--------+
</pre>
<p>
</p>
</div>
<div class="refsect1">
<a name="libprelude-prelude-msg.details"></a><h2>Details</h2>
<div class="refsect2">
<a name="prelude-msg-t"></a><h3>prelude_msg_t</h3>
<pre class="programlisting">typedef struct prelude_msg prelude_msg_t;
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="prelude-msg-priority-t"></a><h3>enum prelude_msg_priority_t</h3>
<pre class="programlisting">typedef enum {
        PRELUDE_MSG_PRIORITY_NONE = 0,
        PRELUDE_MSG_PRIORITY_LOW  = 1,
        PRELUDE_MSG_PRIORITY_MID  = 2,
        PRELUDE_MSG_PRIORITY_HIGH = 3
} prelude_msg_priority_t;
</pre>
<p>
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><a name="PRELUDE-MSG-PRIORITY-NONE:CAPS"></a><span class="term"><code class="literal">PRELUDE_MSG_PRIORITY_NONE</code></span></p></td>
<td>
</td>
</tr>
<tr>
<td><p><a name="PRELUDE-MSG-PRIORITY-LOW:CAPS"></a><span class="term"><code class="literal">PRELUDE_MSG_PRIORITY_LOW</code></span></p></td>
<td>
</td>
</tr>
<tr>
<td><p><a name="PRELUDE-MSG-PRIORITY-MID:CAPS"></a><span class="term"><code class="literal">PRELUDE_MSG_PRIORITY_MID</code></span></p></td>
<td>
</td>
</tr>
<tr>
<td><p><a name="PRELUDE-MSG-PRIORITY-HIGH:CAPS"></a><span class="term"><code class="literal">PRELUDE_MSG_PRIORITY_HIGH</code></span></p></td>
<td>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="prelude-msg-read"></a><h3>prelude_msg_read ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span>                 prelude_msg_read                    (<em class="parameter"><code><a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> **msg</code></em>,
                                                         <em class="parameter"><code><a class="link" href="libprelude-prelude-io.html#prelude-io-t" title="prelude_io_t"><span class="type">prelude_io_t</span></a> *pio</code></em>);</pre>
<p>
Read a message on <em class="parameter"><code>pio</code></em> into <em class="parameter"><code>msg</code></em>. If <em class="parameter"><code>msg</code></em> is NULL, it is
allocated. This function will never block.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
<td>Pointer on a <a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> object address.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>pio</code></em> :</span></p></td>
<td>Pointer on a <a class="link" href="libprelude-prelude-io.html#prelude-io-t" title="prelude_io_t"><span class="type">prelude_io_t</span></a> object.</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>0 if reading the message is complete, or a <a class="link" href="libprelude-prelude-error.html#prelude-error-t" title="prelude_error_t"><span class="type">prelude_error_t</span></a>
error if an error occured. Take particular attention to <a class="link" href="libprelude-prelude-error.html#PRELUDE-ERROR-EAGAIN:CAPS"><span class="type">PRELUDE_ERROR_EAGAIN</span></a>
and PRELUDE_ERROR_EOF.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="prelude-msg-forward"></a><h3>prelude_msg_forward ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span>                 prelude_msg_forward                 (<em class="parameter"><code><a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> *msg</code></em>,
                                                         <em class="parameter"><code><a class="link" href="libprelude-prelude-io.html#prelude-io-t" title="prelude_io_t"><span class="type">prelude_io_t</span></a> *dst</code></em>,
                                                         <em class="parameter"><code><a class="link" href="libprelude-prelude-io.html#prelude-io-t" title="prelude_io_t"><span class="type">prelude_io_t</span></a> *src</code></em>);</pre>
<p>
<a class="link" href="libprelude-prelude-msg.html#prelude-msg-forward" title="prelude_msg_forward ()"><code class="function">prelude_msg_forward()</code></a> read the message corresponding to the <em class="parameter"><code>msg</code></em> object
containing the message header previously gathered using <code class="function">prelude_msg_read_header()</code>
from the <em class="parameter"><code>src</code></em> object, and transfer it to <em class="parameter"><code>dst</code></em>. The header is also transfered.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
<td>Pointer on a <a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> object containing a message header.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>dst</code></em> :</span></p></td>
<td>Pointer on a <a class="link" href="libprelude-prelude-io.html#prelude-io-t" title="prelude_io_t"><span class="type">prelude_io_t</span></a> object to send message to.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
<td>Pointer on a <a class="link" href="libprelude-prelude-io.html#prelude-io-t" title="prelude_io_t"><span class="type">prelude_io_t</span></a> object to read message from.</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>0 on success, or a negative value if an error occured.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="prelude-msg-get"></a><h3>prelude_msg_get ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span>                 prelude_msg_get                     (<em class="parameter"><code><a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> *msg</code></em>,
                                                         <em class="parameter"><code><a class="link" href="libprelude-prelude-inttypes.html#uint8-t" title="uint8_t"><span class="type">uint8_t</span></a> *tag</code></em>,
                                                         <em class="parameter"><code><a class="link" href="libprelude-prelude-inttypes.html#uint32-t" title="uint32_t"><span class="type">uint32_t</span></a> *len</code></em>,
                                                         <em class="parameter"><code><span class="type">void</span> **buf</code></em>);</pre>
<p>
<a class="link" href="libprelude-prelude-msg.html#prelude-msg-get" title="prelude_msg_get ()"><code class="function">prelude_msg_get()</code></a> read the next data chunk contained in the message.
<em class="parameter"><code>tag</code></em> is updated to contain the kind of data the chunk contain.
<em class="parameter"><code>len</code></em> is updated to contain the len of the data chunk.
<em class="parameter"><code>buf</code></em> is updated to point on the data chunk.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
<td>Pointer on a <a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> object representing the message to get data from.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
<td>Pointer on a 8 bits unsigned integer to store the message tag.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>len</code></em> :</span></p></td>
<td>Pointer on a 32 bits unsigned integer to store the message len to.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
<td>Address of a pointer to store the buffer starting address.</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>0 on success, or a <a class="link" href="libprelude-prelude-error.html#prelude-error-t" title="prelude_error_t"><span class="type">prelude_error_t</span></a> value on error.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="prelude-msg-recycle"></a><h3>prelude_msg_recycle ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                prelude_msg_recycle                 (<em class="parameter"><code><a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> *msg</code></em>);</pre>
<p>
Recycle <em class="parameter"><code>msg</code></em> so you can write at it again, even
thought it was written.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
<td>Pointer on <a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> object.</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="prelude-msg-mark-end"></a><h3>prelude_msg_mark_end ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                prelude_msg_mark_end                (<em class="parameter"><code><a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> *msg</code></em>);</pre>
<p>
Mark end of message in the <em class="parameter"><code>msg</code></em> buffer, so you can continue
adding different message in the same buffer.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
<td>Pointer on <a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> object.</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="prelude-msg-dynamic-new"></a><h3>prelude_msg_dynamic_new ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span>                 prelude_msg_dynamic_new             (<em class="parameter"><code><a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> **ret</code></em>,
                                                         <em class="parameter"><code><span class="type">int</span> (*flush_msg_cb) (prelude_msg_t **msg, void *data)</code></em>,
                                                         <em class="parameter"><code><span class="type">void</span> *data</code></em>);</pre>
<p>
Allocate a new <a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> object. <a class="link" href="libprelude-prelude-msg.html#prelude-msg-set" title="prelude_msg_set ()"><code class="function">prelude_msg_set()</code></a> can then be used to
add chunk of data to the message, and <code class="function">prelude_msg_mark_start()</code> to separate
different message in the same buffer.
</p>
<p>
This function use memory chunk of static size to store the message in. If
the size of the data you want to store is bigger than the actual chunk size,
<em class="parameter"><code>flush_msg_cb</code></em> callback will be called for the current message to be flushed,
and the returned message will be used in order to store remaining data.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>ret</code></em> :</span></p></td>
<td>Pointer where to store the create <a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a>.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>flush_msg_cb</code></em> :</span></p></td>
<td>Callback function to call when the buffer need to be flushed.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
<td>Data to pass to the <em class="parameter"><code>flush_msg_cb</code></em> callback function.</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>0 on success, a negative value if an error occured.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="prelude-msg-new"></a><h3>prelude_msg_new ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span>                 prelude_msg_new                     (<em class="parameter"><code><a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> **ret</code></em>,
                                                         <em class="parameter"><code><span class="type">size_t</span> msgcount</code></em>,
                                                         <em class="parameter"><code><span class="type">size_t</span> msglen</code></em>,
                                                         <em class="parameter"><code><a class="link" href="libprelude-prelude-inttypes.html#uint8-t" title="uint8_t"><span class="type">uint8_t</span></a> tag</code></em>,
                                                         <em class="parameter"><code><a class="link" href="libprelude-prelude-msg.html#prelude-msg-priority-t" title="enum prelude_msg_priority_t"><span class="type">prelude_msg_priority_t</span></a> priority</code></em>);</pre>
<p>
Allocate a new <a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> object and store it into <em class="parameter"><code>ret</code></em>. <a class="link" href="libprelude-prelude-msg.html#prelude-msg-set" title="prelude_msg_set ()"><code class="function">prelude_msg_set()</code></a>
can then be used to add chunk of data to the message, and <a class="link" href="libprelude-prelude-msg.html#prelude-msg-write" title="prelude_msg_write ()"><code class="function">prelude_msg_write()</code></a>
to send it.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>ret</code></em> :</span></p></td>
<td>Pointer where to store the created <a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a>.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>msgcount</code></em> :</span></p></td>
<td>Number of chunk of data the created object can accept.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>msglen</code></em> :</span></p></td>
<td>Maximum number of bytes the object should handle for all the chunks.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
<td>A tag identifying the kind of message.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>priority</code></em> :</span></p></td>
<td>The priority of this message.</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>0 on success, a negative value if an error occured.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="prelude-msg-set"></a><h3>prelude_msg_set ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span>                 prelude_msg_set                     (<em class="parameter"><code><a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> *msg</code></em>,
                                                         <em class="parameter"><code><a class="link" href="libprelude-prelude-inttypes.html#uint8-t" title="uint8_t"><span class="type">uint8_t</span></a> tag</code></em>,
                                                         <em class="parameter"><code><a class="link" href="libprelude-prelude-inttypes.html#uint32-t" title="uint32_t"><span class="type">uint32_t</span></a> len</code></em>,
                                                         <em class="parameter"><code>const <span class="type">void</span> *data</code></em>);</pre>
<p>
<a class="link" href="libprelude-prelude-msg.html#prelude-msg-set" title="prelude_msg_set ()"><code class="function">prelude_msg_set()</code></a> append <em class="parameter"><code>len</code></em> bytes of data from the <em class="parameter"><code>data</code></em> buffer
to the <em class="parameter"><code>msg</code></em> object representing a message. The data is tagged with <em class="parameter"><code>tag</code></em>.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
<td>Pointer on a <a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> object to store the data to.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
<td>8 bits unsigned integer describing the kind of data.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>len</code></em> :</span></p></td>
<td>len of the data chunk.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
<td>Pointer to the starting address of the data.</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>0 on success, or a negative value if the remaining space is not
available. You might check the return value mostly if using a dynamic message
through <a class="link" href="libprelude-prelude-msg.html#prelude-msg-dynamic-new" title="prelude_msg_dynamic_new ()"><code class="function">prelude_msg_dynamic_new()</code></a>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="prelude-msg-write"></a><h3>prelude_msg_write ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span>                 prelude_msg_write                   (<em class="parameter"><code><a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> *msg</code></em>,
                                                         <em class="parameter"><code><a class="link" href="libprelude-prelude-io.html#prelude-io-t" title="prelude_io_t"><span class="type">prelude_io_t</span></a> *dst</code></em>);</pre>
<p>
<a class="link" href="libprelude-prelude-msg.html#prelude-msg-write" title="prelude_msg_write ()"><code class="function">prelude_msg_write()</code></a> write the message corresponding to the <em class="parameter"><code>msg</code></em>
object to <em class="parameter"><code>dst</code></em>. The message should have been created using the
<a class="link" href="libprelude-prelude-msg.html#prelude-msg-new" title="prelude_msg_new ()"><code class="function">prelude_msg_new()</code></a> and <a class="link" href="libprelude-prelude-msg.html#prelude-msg-set" title="prelude_msg_set ()"><code class="function">prelude_msg_set()</code></a> functions.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
<td>Pointer on a <a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> object containing the message.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>dst</code></em> :</span></p></td>
<td>Pointer on a <a class="link" href="libprelude-prelude-io.html#prelude-io-t" title="prelude_io_t"><span class="type">prelude_io_t</span></a> object to send the message to.</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>0 on success, or a negative value if an error occured.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="prelude-msg-set-tag"></a><h3>prelude_msg_set_tag ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                prelude_msg_set_tag                 (<em class="parameter"><code><a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> *msg</code></em>,
                                                         <em class="parameter"><code><a class="link" href="libprelude-prelude-inttypes.html#uint8-t" title="uint8_t"><span class="type">uint8_t</span></a> tag</code></em>);</pre>
<p>
Tag <em class="parameter"><code>msg</code></em>.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
<td>Pointer on a <a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> object.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
<td>Tag to associate with <em class="parameter"><code>msg</code></em>.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="prelude-msg-set-priority"></a><h3>prelude_msg_set_priority ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                prelude_msg_set_priority            (<em class="parameter"><code><a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> *msg</code></em>,
                                                         <em class="parameter"><code><a class="link" href="libprelude-prelude-msg.html#prelude-msg-priority-t" title="enum prelude_msg_priority_t"><span class="type">prelude_msg_priority_t</span></a> priority</code></em>);</pre>
<p>
Associate <em class="parameter"><code>priority</code></em> with <em class="parameter"><code>msg</code></em>.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
<td>Pointer on a <a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> object.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>priority</code></em> :</span></p></td>
<td>Priority to associate with <em class="parameter"><code>msg</code></em>.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="prelude-msg-get-tag"></a><h3>prelude_msg_get_tag ()</h3>
<pre class="programlisting"><a class="link" href="libprelude-prelude-inttypes.html#uint8-t" title="uint8_t"><span class="returnvalue">uint8_t</span></a>             prelude_msg_get_tag                 (<em class="parameter"><code><a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> *msg</code></em>);</pre>
<p>
<a class="link" href="libprelude-prelude-msg.html#prelude-msg-get-tag" title="prelude_msg_get_tag ()"><code class="function">prelude_msg_get_tag()</code></a> return the tag contained in the <em class="parameter"><code>msg</code></em> header.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
<td>Pointer on a <a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> object.</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>A tag.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="prelude-msg-get-priority"></a><h3>prelude_msg_get_priority ()</h3>
<pre class="programlisting"><a class="link" href="libprelude-prelude-msg.html#prelude-msg-priority-t" title="enum prelude_msg_priority_t"><span class="returnvalue">prelude_msg_priority_t</span></a> prelude_msg_get_priority         (<em class="parameter"><code><a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> *msg</code></em>);</pre>
<p>
<a class="link" href="libprelude-prelude-msg.html#prelude-msg-get-priority" title="prelude_msg_get_priority ()"><code class="function">prelude_msg_get_priority()</code></a> return the priority contained in the <em class="parameter"><code>msg</code></em> header.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
<td>Pointer on a <a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> object.</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>A priority.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="prelude-msg-get-len"></a><h3>prelude_msg_get_len ()</h3>
<pre class="programlisting"><a class="link" href="libprelude-prelude-inttypes.html#uint32-t" title="uint32_t"><span class="returnvalue">uint32_t</span></a>            prelude_msg_get_len                 (<em class="parameter"><code><a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> *msg</code></em>);</pre>
<p>
<a class="link" href="libprelude-prelude-msg.html#prelude-msg-get-len" title="prelude_msg_get_len ()"><code class="function">prelude_msg_get_len()</code></a> return the currently used
len for the <em class="parameter"><code>msg</code></em> message.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
<td>Pointer on a <a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> object.</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>Len of the message.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="prelude-msg-get-datalen"></a><h3>prelude_msg_get_datalen ()</h3>
<pre class="programlisting"><a class="link" href="libprelude-prelude-inttypes.html#uint32-t" title="uint32_t"><span class="returnvalue">uint32_t</span></a>            prelude_msg_get_datalen             (<em class="parameter"><code><a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> *msg</code></em>);</pre>
<p>
<a class="link" href="libprelude-prelude-msg.html#prelude-msg-get-datalen" title="prelude_msg_get_datalen ()"><code class="function">prelude_msg_get_datalen()</code></a> return the len of the whole message
contained in the <em class="parameter"><code>msg</code></em> header.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
<td>Pointer on a <a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> object.</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>Len of the message.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="prelude-msg-destroy"></a><h3>prelude_msg_destroy ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                prelude_msg_destroy                 (<em class="parameter"><code><a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> *msg</code></em>);</pre>
<p>
<a class="link" href="libprelude-prelude-msg.html#prelude-msg-destroy" title="prelude_msg_destroy ()"><code class="function">prelude_msg_destroy()</code></a> destroy the <a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> object pointed
to by <em class="parameter"><code>msg</code></em>. All the ressources for this message are freed.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
<td>Pointer on a <a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> object.</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="prelude-msg-get-time"></a><h3>prelude_msg_get_time ()</h3>
<pre class="programlisting">struct <span class="returnvalue">timeval</span> *    prelude_msg_get_time                (<em class="parameter"><code><a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> *msg</code></em>,
                                                         <em class="parameter"><code><span class="type">struct timeval</span> *tv</code></em>);</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="prelude-msg-is-empty"></a><h3>prelude_msg_is_empty ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span>                 prelude_msg_is_empty                (<em class="parameter"><code><a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> *msg</code></em>);</pre>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
<td>Pointer on a <a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> object.</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>true if <em class="parameter"><code>msg</code></em> doesn't contain any data to send.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="prelude-msg-is-fragment"></a><h3>prelude_msg_is_fragment ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span>                 prelude_msg_is_fragment             (<em class="parameter"><code><a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> *msg</code></em>);</pre>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
<td>Pointer on a <a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> object.</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>true if <em class="parameter"><code>msg</code></em> only contain a fragment of message.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="prelude-msg-ref"></a><h3>prelude_msg_ref ()</h3>
<pre class="programlisting"><a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="returnvalue">prelude_msg_t</span></a> *     prelude_msg_ref                     (<em class="parameter"><code><a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> *msg</code></em>);</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2">
<a name="prelude-msg-set-callback"></a><h3>prelude_msg_set_callback ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                prelude_msg_set_callback            (<em class="parameter"><code><a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> *msg</code></em>,
                                                         <em class="parameter"><code><span class="type">int</span> (*flush_msg_cb) (prelude_msg_t **msg, void *data)</code></em>);</pre>
<p>
<a class="link" href="libprelude-prelude-msg.html#prelude-msg-set-callback" title="prelude_msg_set_callback ()"><code class="function">prelude_msg_set_callback()</code></a> allow to change the callback used
to flush a message created with <a class="link" href="libprelude-prelude-msg.html#prelude-msg-dynamic-new" title="prelude_msg_dynamic_new ()"><code class="function">prelude_msg_dynamic_new()</code></a>.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
<td>Pointer on a <a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> object.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>flush_msg_cb</code></em> :</span></p></td>
<td>Pointer on a function responssible of sending the message.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="prelude-msg-set-data"></a><h3>prelude_msg_set_data ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                prelude_msg_set_data                (<em class="parameter"><code><a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> *msg</code></em>,
                                                         <em class="parameter"><code><span class="type">void</span> *data</code></em>);</pre>
<p>
<a class="link" href="libprelude-prelude-msg.html#prelude-msg-set-data" title="prelude_msg_set_data ()"><code class="function">prelude_msg_set_data()</code></a> allow to change the data passed
to the message sending callback.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
<td>Pointer on a <a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> object.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
<td>Pointer on the data to associate to this message.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="prelude-msg-get-message-data"></a><h3>prelude_msg_get_message_data ()</h3>
<pre class="programlisting">const unsigned <span class="returnvalue">char</span> * prelude_msg_get_message_data      (<em class="parameter"><code><a class="link" href="libprelude-prelude-msg.html#prelude-msg-t" title="prelude_msg_t"><span class="type">prelude_msg_t</span></a> *msg</code></em>);</pre>
<p>
</p>
</div>
</div>
<div class="refsect1">
<a name="libprelude-prelude-msg.see-also"></a><h2>See Also</h2>
<p>
prelude-msgbuf
</p>
</div>
</div>
<div class="footer">
<hr>
          Generated by GTK-Doc V1.19</div>
</body>
</html>