Sophie

Sophie

distrib > Fedora > 16 > i386 > by-pkgid > 4bc66056a634db26a1f4d0845dc41ca6 > files > 5326

mrpt-doc-0.9.5-0.1.20110925svn2670.fc16.i686.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>mrpt::utils::CMessage Class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<div align="left"><a href="http://www.mrpt.org/">Main MRPT website</a> &gt; <b>C++ reference</b> </div>
<div align="right">
<a href="index.html"><img border="0" src="mrpt_logo.png" alt="MRPT logo"></a>
</div>
<!-- Generated by Doxygen 1.7.5 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
          <div class="left">
            <form id="FSearchBox" action="search.php" method="get">
              <img id="MSearchSelect" src="search/mag.png" alt=""/>
              <input type="text" id="MSearchField" name="query" value="Search" size="20" accesskey="S" 
                     onfocus="searchBox.OnSearchFieldFocus(true)" 
                     onblur="searchBox.OnSearchFieldFocus(false)"/>
            </form>
          </div><div class="right"></div>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="namespacemrpt.html">mrpt</a>      </li>
      <li class="navelem"><a class="el" href="namespacemrpt_1_1utils.html">utils</a>      </li>
      <li class="navelem"><a class="el" href="classmrpt_1_1utils_1_1_c_message.html">CMessage</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a>  </div>
  <div class="headertitle">
<div class="title">mrpt::utils::CMessage Class Reference<div class="ingroups"><a class="el" href="group__mrpt__base__grp.html">[mrpt-base]</a></div></div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="mrpt::utils::CMessage" --><hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>A class that contain generic messages, that can be sent and received from a "CClientTCPSocket" object. </p>
<p>A message consists of a "header" (or type), and a "body" (or content). Apart from arbitrary data, specific methods are provided for easing the serialization of MRPT's "CSerializable" objects. This class is also used for passing data to hardware interfaces (see ) </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_client_t_c_p_socket.html" title="A TCP socket that can be connected to a TCP server, implementing MRPT&#39;s CStream interface for passing...">CClientTCPSocket</a> </dd></dl>
</div>
<p><code>#include &lt;<a class="el" href="_c_message_8h_source.html">mrpt/utils/CMessage.h</a>&gt;</code></p>

<p><a href="classmrpt_1_1utils_1_1_c_message-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_message.html#a1bb73d51be3e2cb18db4e27c0e2baf7f">serializeObject</a> (<a class="el" href="classmrpt_1_1utils_1_1_c_serializable.html">CSerializable</a> *obj)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A method for serializing a MRPT's object into the content.  <a href="#a1bb73d51be3e2cb18db4e27c0e2baf7f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_message.html#a24b7b077e6c0830d61d6a749d701b100">deserializeIntoExistingObject</a> (<a class="el" href="classmrpt_1_1utils_1_1_c_serializable.html">CSerializable</a> *obj)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A method that parse the data in the message into an existing object.  <a href="#a24b7b077e6c0830d61d6a749d701b100"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_message.html#aefb44f4563cfeb223752cc51b8dc6fe2">deserializeIntoNewObject</a> (<a class="el" href="structmrpt_1_1utils_1_1_c_serializable_ptr.html">CSerializablePtr</a> &amp;obj)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A method that parse the data in the message into a new object of (a priori) unknown class.  <a href="#aefb44f4563cfeb223752cc51b8dc6fe2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_message.html#aeb1c4f7a3e8d52717a1a1a7522f7c5a8">setContentFromString</a> (const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;str)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the contents of the message from a string.  <a href="#aeb1c4f7a3e8d52717a1a1a7522f7c5a8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_message.html#a1b28bfe19443c2ccaeb845108844c695">getContentAsString</a> (<a class="el" href="classstd_1_1string.html">std::string</a> &amp;str)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the contents of the message as a string.  <a href="#a1b28bfe19443c2ccaeb845108844c695"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_message.html#a4f728b9c297e403836daa2cffd6f99d9">setContentFromPointer</a> (void *ptr)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the contents of the message from a "void*" (the pointer itself becomes the message) - This is intended for inter-thread comms only.  <a href="#a4f728b9c297e403836daa2cffd6f99d9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_message.html#a2854dce4ded6564c088f803dc2d3cc55">getContentAsPointer</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the contents of the message as a "void*" (the pointer itself is the message) - This is intended for inter-thread comms only.  <a href="#a2854dce4ded6564c088f803dc2d3cc55"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_message.html#a6e987c71d5e34067f78a9499fc0af272">setContentFromStruct</a> (const T &amp;data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the contents of the message from an arbitary structure - This is intended for inter-thread comms only, the message will be not cross-platform.  <a href="#a6e987c71d5e34067f78a9499fc0af272"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_message.html#a2084b8a04bb4a9bc46063853f3edadc4">getContentAsStruct</a> (T &amp;data) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the contents of the message as an arbitary structure - This is intended for inter-thread comms only, the message will be not cross-platform.  <a href="#a2084b8a04bb4a9bc46063853f3edadc4"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_message.html#af2cfa020aed88f03b538af843ccaaefd">type</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">An identifier of the message type.  <a href="#af2cfa020aed88f03b538af843ccaaefd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; unsigned char &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_message.html#a8e688ef6498f21394a439feff486db65">content</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The contents of the message (memory is automatically handled by the <a class="el" href="classstd_1_1vector.html" title="STL class.">std::vector</a> object)  <a href="#a8e688ef6498f21394a439feff486db65"></a><br/></td></tr>
</table>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a24b7b077e6c0830d61d6a749d701b100"></a><!-- doxytag: member="mrpt::utils::CMessage::deserializeIntoExistingObject" ref="a24b7b077e6c0830d61d6a749d701b100" args="(CSerializable *obj)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CMessage::deserializeIntoExistingObject </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1utils_1_1_c_serializable.html">CSerializable</a> *&#160;</td>
          <td class="paramname"><em>obj</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>A method that parse the data in the message into an existing object. </p>
<p>Note that the class of the object must be known and must match the one of the serialized object.  <a class="el" href="classstd_1_1exception.html" title="STL class.">std::exception</a> On corrupt data, unknown serialized objects, unknown serialized object version, non-matching classes,... </p>

</div>
</div>
<a class="anchor" id="aefb44f4563cfeb223752cc51b8dc6fe2"></a><!-- doxytag: member="mrpt::utils::CMessage::deserializeIntoNewObject" ref="aefb44f4563cfeb223752cc51b8dc6fe2" args="(CSerializablePtr &amp;obj)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CMessage::deserializeIntoNewObject </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structmrpt_1_1utils_1_1_c_serializable_ptr.html">CSerializablePtr</a> &amp;&#160;</td>
          <td class="paramname"><em>obj</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>A method that parse the data in the message into a new object of (a priori) unknown class. </p>
<p>The pointer will contain on return a copy of the reconstructed object. Deleting this object when no longer required is the responsability of the user. Note that previous contents of the pointer will be ignored (it should be NULL).  <a class="el" href="classstd_1_1exception.html" title="STL class.">std::exception</a> On corrupt data, unknown serialized objects, unknown serialized object version,... </p>

</div>
</div>
<a class="anchor" id="a2854dce4ded6564c088f803dc2d3cc55"></a><!-- doxytag: member="mrpt::utils::CMessage::getContentAsPointer" ref="a2854dce4ded6564c088f803dc2d3cc55" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void* mrpt::utils::CMessage::getContentAsPointer </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Gets the contents of the message as a "void*" (the pointer itself is the message) - This is intended for inter-thread comms only. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_message.html#a4f728b9c297e403836daa2cffd6f99d9" title="Sets the contents of the message from a &quot;void*&quot; (the pointer itself becomes the message) - This is in...">setContentFromPointer</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a1b28bfe19443c2ccaeb845108844c695"></a><!-- doxytag: member="mrpt::utils::CMessage::getContentAsString" ref="a1b28bfe19443c2ccaeb845108844c695" args="(std::string &amp;str)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CMessage::getContentAsString </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classstd_1_1string.html">std::string</a> &amp;&#160;</td>
          <td class="paramname"><em>str</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Gets the contents of the message as a string. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_message.html#aeb1c4f7a3e8d52717a1a1a7522f7c5a8" title="Sets the contents of the message from a string.">setContentFromString</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a2084b8a04bb4a9bc46063853f3edadc4"></a><!-- doxytag: member="mrpt::utils::CMessage::getContentAsStruct" ref="a2084b8a04bb4a9bc46063853f3edadc4" args="(T &amp;data) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CMessage::getContentAsStruct </td>
          <td>(</td>
          <td class="paramtype">T &amp;&#160;</td>
          <td class="paramname"><em>data</em></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Gets the contents of the message as an arbitary structure - This is intended for inter-thread comms only, the message will be not cross-platform. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_message.html#a6e987c71d5e34067f78a9499fc0af272" title="Sets the contents of the message from an arbitary structure - This is intended for inter-thread comms...">setContentFromStruct</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_message_8h_source.html#l00114">114</a> of file <a class="el" href="_c_message_8h_source.html">CMessage.h</a>.</p>

<p>References <a class="el" href="mrpt__macros_8h_source.html#l00370">MRPT_START</a>, <a class="el" href="mrpt__macros_8h_source.html#l00282">ASSERT_</a>, and <a class="el" href="mrpt__macros_8h_source.html#l00374">MRPT_END</a>.</p>

</div>
</div>
<a class="anchor" id="a1bb73d51be3e2cb18db4e27c0e2baf7f"></a><!-- doxytag: member="mrpt::utils::CMessage::serializeObject" ref="a1bb73d51be3e2cb18db4e27c0e2baf7f" args="(CSerializable *obj)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CMessage::serializeObject </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1utils_1_1_c_serializable.html">CSerializable</a> *&#160;</td>
          <td class="paramname"><em>obj</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>A method for serializing a MRPT's object into the content. </p>
<p>Any modification to data in "content" after this will corrupt the object serialization. Member "type" is unmodified in this method. </p>

</div>
</div>
<a class="anchor" id="a4f728b9c297e403836daa2cffd6f99d9"></a><!-- doxytag: member="mrpt::utils::CMessage::setContentFromPointer" ref="a4f728b9c297e403836daa2cffd6f99d9" args="(void *ptr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CMessage::setContentFromPointer </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>ptr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sets the contents of the message from a "void*" (the pointer itself becomes the message) - This is intended for inter-thread comms only. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_message.html#a2854dce4ded6564c088f803dc2d3cc55" title="Gets the contents of the message as a &quot;void*&quot; (the pointer itself is the message) - This is intended ...">getContentAsPointer</a> </dd></dl>

</div>
</div>
<a class="anchor" id="aeb1c4f7a3e8d52717a1a1a7522f7c5a8"></a><!-- doxytag: member="mrpt::utils::CMessage::setContentFromString" ref="aeb1c4f7a3e8d52717a1a1a7522f7c5a8" args="(const std::string &amp;str)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CMessage::setContentFromString </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;&#160;</td>
          <td class="paramname"><em>str</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sets the contents of the message from a string. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_message.html#a1b28bfe19443c2ccaeb845108844c695" title="Gets the contents of the message as a string.">getContentAsString</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a6e987c71d5e34067f78a9499fc0af272"></a><!-- doxytag: member="mrpt::utils::CMessage::setContentFromStruct" ref="a6e987c71d5e34067f78a9499fc0af272" args="(const T &amp;data)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CMessage::setContentFromStruct </td>
          <td>(</td>
          <td class="paramtype">const T &amp;&#160;</td>
          <td class="paramname"><em>data</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sets the contents of the message from an arbitary structure - This is intended for inter-thread comms only, the message will be not cross-platform. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_message.html#a2084b8a04bb4a9bc46063853f3edadc4" title="Gets the contents of the message as an arbitary structure - This is intended for inter-thread comms o...">getContentAsStruct</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_message_8h_source.html#l00103">103</a> of file <a class="el" href="_c_message_8h_source.html">CMessage.h</a>.</p>

</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="a8e688ef6498f21394a439feff486db65"></a><!-- doxytag: member="mrpt::utils::CMessage::content" ref="a8e688ef6498f21394a439feff486db65" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt;unsigned char&gt; <a class="el" href="classmrpt_1_1utils_1_1_c_message.html#a8e688ef6498f21394a439feff486db65">mrpt::utils::CMessage::content</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The contents of the message (memory is automatically handled by the <a class="el" href="classstd_1_1vector.html" title="STL class.">std::vector</a> object) </p>

<p>Definition at line <a class="el" href="_c_message_8h_source.html#l00057">57</a> of file <a class="el" href="_c_message_8h_source.html">CMessage.h</a>.</p>

</div>
</div>
<a class="anchor" id="af2cfa020aed88f03b538af843ccaaefd"></a><!-- doxytag: member="mrpt::utils::CMessage::type" ref="af2cfa020aed88f03b538af843ccaaefd" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t <a class="el" href="classmrpt_1_1utils_1_1_c_message.html#af2cfa020aed88f03b538af843ccaaefd">mrpt::utils::CMessage::type</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>An identifier of the message type. </p>

<p>Definition at line <a class="el" href="_c_message_8h_source.html#l00053">53</a> of file <a class="el" href="_c_message_8h_source.html">CMessage.h</a>.</p>

</div>
</div>
</div>
<br><hr><br> <table border="0" width="100%"> <tr> <td> Page generated by <a href="http://www.doxygen.org" target="_blank">Doxygen 1.7.5</a> for MRPT 0.9.5 SVN: at Sun Sep 25 17:20:18 UTC 2011</td><td></td> <td width="100"> </td> <td width="150">  </td></tr> </table>  </body></html>