Sophie

Sophie

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

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>CSerializable.h File 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><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><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="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>File&#160;Members</span></a></li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#namespaces">Namespaces</a> &#124;
<a href="#define-members">Defines</a>  </div>
  <div class="headertitle">
<div class="title">CSerializable.h File Reference</div>  </div>
</div>
<div class="contents">
<div class="textblock"><code>#include &lt;<a class="el" href="_c_object_8h_source.html">mrpt/utils/CObject.h</a>&gt;</code><br/>
<code>#include &lt;<a class="el" href="_c_stream_8h_source.html">mrpt/utils/CStream.h</a>&gt;</code><br/>
<code>#include &lt;<a class="el" href="safe__pointers_8h_source.html">mrpt/utils/safe_pointers.h</a>&gt;</code><br/>
<code>#include &lt;set&gt;</code><br/>
<code>#include &lt;list&gt;</code><br/>
</div><div class="textblock"><div class="dynheader">
Include dependency graph for CSerializable.h:</div>
<div class="dyncontent">
<div class="center"><img src="_c_serializable_8h__incl.png" border="0" usemap="#_c_serializable_8h" alt=""/></div>
<map name="_c_serializable_8h" id="_c_serializable_8h">
<area shape="rect" id="node3" href="_c_object_8h.html" title="mrpt/utils/CObject.h" alt="" coords="1717,155,1856,181"/><area shape="rect" id="node122" href="safe__pointers_8h.html" title="mrpt/utils/safe_pointers.h" alt="" coords="1795,229,1964,256"/><area shape="rect" id="node126" href="_c_stream_8h.html" title="mrpt/utils/CStream.h" alt="" coords="1545,80,1687,107"/><area shape="rect" id="node5" href="utils__defs_8h.html" title="mrpt/utils/utils_defs.h" alt="" coords="1620,304,1767,331"/><area shape="rect" id="node9" href="os_8h.html" title="mrpt/system/os.h" alt="" coords="1631,379,1755,405"/><area shape="rect" id="node22" href="base_2include_2mrpt_2base_2link__pragmas_8h.html" title="mrpt/base/link_pragmas.h" alt="" coords="1366,603,1537,629"/><area shape="rect" id="node25" href="boost__join_8h.html" title="mrpt/utils/boost_join.h" alt="" coords="691,677,841,704"/><area shape="rect" id="node27" href="base_2include_2mrpt_2utils_2types_8h.html" title="mrpt/utils/types.h" alt="" coords="1433,453,1556,480"/><area shape="rect" id="node69" href="mrpt__macros_8h.html" title="mrpt/utils/mrpt_macros.h" alt="" coords="2330,453,2496,480"/><area shape="rect" id="node72" href="compiler__fixes_8h.html" title="mrpt/utils/compiler_fixes.h" alt="" coords="1882,379,2056,405"/><area shape="rect" id="node99" href="smart__ptr_8hpp.html" title="mrpt/otherlibs/stlplus/smart_ptr.hpp" alt="" coords="2521,453,2748,480"/><area shape="rect" id="node116" href="bits_8h.html" title="mrpt/utils/bits.h" alt="" coords="2835,379,2945,405"/><area shape="rect" id="node39" href="mrpt__stdint_8h.html" title="mrpt/utils/mrpt_stdint.h" alt="" coords="1777,603,1932,629"/><area shape="rect" id="node42" href="mrpt__inttypes_8h.html" title="mrpt/utils/mrpt_inttypes.h" alt="" coords="1647,528,1817,555"/><area shape="rect" id="node45" href="math__frwds_8h.html" title="mrpt/math/math_frwds.h" alt="" coords="602,528,765,555"/><area shape="rect" id="node61" href="_dense.html" title="Eigen/Dense" alt="" coords="842,528,939,555"/><area shape="rect" id="node101" href="containers__fixes_8hpp.html" title="containers_fixes.hpp" alt="" coords="2778,603,2920,629"/><area shape="rect" id="node103" href="exceptions_8hpp.html" title="exceptions.hpp" alt="" coords="2709,528,2819,555"/><area shape="rect" id="node110" href="atomic__incr_8h.html" title="mrpt/synch/atomic_incr.h" alt="" coords="2341,528,2509,555"/><area shape="rect" id="node114" href="smart__ptr_8tpp.html" title="smart_ptr.tpp" alt="" coords="2585,528,2684,555"/><area shape="rect" id="node118" href="_s_s_e__types_8h.html" title="mrpt/utils/SSE_types.h" alt="" coords="2823,453,2980,480"/><area shape="rect" id="node129" href="_c_uncopiable_8h.html" title="mrpt/utils/CUncopiable.h" alt="" coords="1489,229,1655,256"/><area shape="rect" id="node133" href="exceptions_8h.html" title="mrpt/utils/exceptions.h" alt="" coords="1539,155,1692,181"/></map>
</div>
</div>
<p><a href="_c_serializable_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmrpt_1_1utils_1_1_c_serializable_ptr.html">mrpt::utils::CSerializablePtr</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_serializable.html">mrpt::utils::CSerializable</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The virtual base class which provides a unified interface for all persistent objects in MRPT.  <a href="classmrpt_1_1utils_1_1_c_serializable.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmrpt_1_1utils_1_1_t_type_name.html">mrpt::utils::TTypeName</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A template to obtain the type of its argument as a string at compile time.  <a href="structmrpt_1_1utils_1_1_t_type_name.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmrpt_1_1utils_1_1_t_type_name_3_01std_1_1pair_3_01_t1_00_01_t2_01_4_01_4.html">mrpt::utils::TTypeName&lt; std::pair&lt; T1, T2 &gt; &gt;</a></td></tr>
<tr><td colspan="2"><h2><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemrpt.html">mrpt</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><p>This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries. </p>
<br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemrpt_1_1utils.html">mrpt::utils</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><p>Classes for serialization, sockets, ini-file manipulation, streams, list of properties-values, timewatch, extensions to STL. </p>
<br/></td></tr>
<tr><td colspan="2"><h2><a name="define-members"></a>
Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_c_serializable_8h.html#a72ab55bf7ae009c89b75715cfa21e84d">DEFINE_SERIALIZABLE</a>(class_name)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This declaration must be inserted in all CSerializable classes definition, within the class declaration.  <a href="#a72ab55bf7ae009c89b75715cfa21e84d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_c_serializable_8h.html#a4f65adffe92332a1a157f834338b1d49">DEFINE_SERIALIZABLE_PRE_CUSTOM_LINKAGE</a>(class_name, _LINKAGE_)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This declaration must be inserted in all CSerializable classes definition, before the class declaration.  <a href="#a4f65adffe92332a1a157f834338b1d49"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_c_serializable_8h.html#a5155da97198db5986e6369e2fe7a3539">DEFINE_SERIALIZABLE_PRE</a>(class_name)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This declaration must be inserted in all CSerializable classes definition, before the class declaration.  <a href="#a5155da97198db5986e6369e2fe7a3539"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_c_serializable_8h.html#a9ef523d787f6cb837a0585b790882588">DEFINE_SERIALIZABLE_PRE_CUSTOM_BASE_LINKAGE</a>(class_name, base_name, _LINKAGE_)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This declaration must be inserted in all CSerializable classes definition, before the class declaration.  <a href="#a9ef523d787f6cb837a0585b790882588"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_c_serializable_8h.html#ab89b7a3de0a1baf5a5af4454add7d0f8">DEFINE_SERIALIZABLE_PRE_CUSTOM_BASE</a>(class_name, base_name)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This declaration must be inserted in all CSerializable classes definition, before the class declaration.  <a href="#ab89b7a3de0a1baf5a5af4454add7d0f8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_c_serializable_8h.html#a5720fe2c7372e6b325004e7bdc5dd692">IMPLEMENTS_SERIALIZABLE</a>(class_name, base, NameSpace)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This must be inserted in all CSerializable classes implementation files:  <a href="#a5720fe2c7372e6b325004e7bdc5dd692"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_c_serializable_8h.html#a5876f72cf51bfb66a82bf81cc493febc">DEFINE_VIRTUAL_SERIALIZABLE</a>(class_name)&#160;&#160;&#160;DEFINE_VIRTUAL_MRPT_OBJECT(class_name)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This declaration must be inserted in virtual CSerializable classes definition:  <a href="#a5876f72cf51bfb66a82bf81cc493febc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_c_serializable_8h.html#a9dcb53a0dc06be1b78b78046f7e9757a">IMPLEMENTS_VIRTUAL_SERIALIZABLE</a>(class_name, base_class_name, NameSpace)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This must be inserted as implementation of some required members for virtual CSerializable classes:  <a href="#a9dcb53a0dc06be1b78b78046f7e9757a"></a><br/></td></tr>
<tr><td colspan="2"><div class="groupHeader">Conversion of type to string at compile time</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p>IMPORTANT: See also the implementation of Serialization for STL containers in <a class="el" href="stl__extensions_8h.html">mrpt/utils/stl_extensions.h</a> </p>
</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_c_serializable_8h.html#aac77500ae43a282574851009d7399d81">DECLARE_CUSTOM_TTYPENAME</a>(_TYPE)&#160;&#160;&#160;namespace mrpt { namespace utils { MRPT_DECLARE_TTYPENAME(_TYPE) } }</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Identical to MRPT_DECLARE_TTYPENAME but intended for user code.  <a href="#aac77500ae43a282574851009d7399d81"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_c_serializable_8h.html#a3d50ead2a44af4340ef8e3a88b78df10">MRPT_DECLARE_TTYPENAME</a>(_TYPE)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_c_serializable_8h.html#a81695246461c7c04018786a6b6e75b6d">MRPT_DECLARE_TTYPENAME_PTR</a>(_TYPE)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_c_serializable_8h.html#a988f455c4e9dbf9c78f58adc75627fdc">MRPT_DECLARE_TTYPENAME_CONTAINER</a>(_CONTAINER)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_c_serializable_8h.html#a31a2cb66ebc61fff6cd6d5e3d9465c19">MRPT_DECLARE_TTYPENAME_MAP_FOR_VECTOR</a>(_CONT)&#160;&#160;&#160;template&lt;&gt; struct TTypeName &lt;_CONT&gt; : TTypeName&lt;<a class="el" href="classstd_1_1vector.html">std::vector</a>&lt;_CONT::Scalar&gt; &gt; { };</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_c_serializable_8h.html#aea6791b84a5804fa07c5a6923409b446">MRPT_DECLARE_TTYPENAME_CONTAINER_ASSOC</a>(_CONTAINER)</td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td colspan="2"><div class="groupHeader">Non-streaming serialization functions</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classstd_1_1string.html">std::string</a> BASE_IMPEXP&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemrpt_1_1utils.html#a06ed9b2f48694d76491290d425bcc5b8">mrpt::utils::ObjectToString</a> (const CSerializable *o)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Used to pass MRPT objects into a CORBA-like object (strings).  <a href="#a06ed9b2f48694d76491290d425bcc5b8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void BASE_IMPEXP&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemrpt_1_1utils.html#aff5bcfca78de7fe76619e012be514536">mrpt::utils::StringToObject</a> (const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;str, CSerializablePtr &amp;obj)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Used to pass CORBA-like objects (strings) into a MRPT object.  <a href="#aff5bcfca78de7fe76619e012be514536"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void BASE_IMPEXP&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemrpt_1_1utils.html#a16c964ccdd95e205756d4c9423d327a1">mrpt::utils::ObjectToOctetVector</a> (const CSerializable *o, vector_byte &amp;out_vector)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts (serializes) an MRPT object into an array of bytes.  <a href="#a16c964ccdd95e205756d4c9423d327a1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void BASE_IMPEXP&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemrpt_1_1utils.html#ab4df6fdf9180e0b0d68796d04bb491ea">mrpt::utils::OctetVectorToObject</a> (const vector_byte &amp;in_data, CSerializablePtr &amp;obj)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts back (de-serializes) a sequence of binary data into a MRPT object, without prior information about the object's class.  <a href="#ab4df6fdf9180e0b0d68796d04bb491ea"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void BASE_IMPEXP&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemrpt_1_1utils.html#aeae09d5d3a2adbfed024fdbe32ffda21">mrpt::utils::ObjectToRawString</a> (const CSerializable *o, <a class="el" href="classstd_1_1string.html">std::string</a> &amp;out_str)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts (serializes) an MRPT object into an array of bytes within a <a class="el" href="classstd_1_1string.html" title="STL class.">std::string</a>, without codifying to avoid NULL characters.  <a href="#aeae09d5d3a2adbfed024fdbe32ffda21"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void BASE_IMPEXP&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemrpt_1_1utils.html#a42ebda9258713a4a9bada754001c4d8b">mrpt::utils::RawStringToObject</a> (const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;in_str, CSerializablePtr &amp;obj)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts back (de-serializes) a sequence of binary data within a <a class="el" href="classstd_1_1string.html" title="STL class.">std::string</a> into a MRPT object, without prior information about the object's class.  <a href="#a42ebda9258713a4a9bada754001c4d8b"></a><br/></td></tr>
</table>
<hr/><h2>Define Documentation</h2>
<a class="anchor" id="aac77500ae43a282574851009d7399d81"></a><!-- doxytag: member="CSerializable.h::DECLARE_CUSTOM_TTYPENAME" ref="aac77500ae43a282574851009d7399d81" args="(_TYPE)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DECLARE_CUSTOM_TTYPENAME</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">_TYPE</td><td>)</td>
          <td>&#160;&#160;&#160;namespace mrpt { namespace utils { MRPT_DECLARE_TTYPENAME(_TYPE) } }</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Identical to MRPT_DECLARE_TTYPENAME but intended for user code. </p>
<p>MUST be placed at the GLOBAL namespace. </p>

<p>Definition at line <a class="el" href="_c_serializable_8h_source.html#l00179">179</a> of file <a class="el" href="_c_serializable_8h_source.html">CSerializable.h</a>.</p>

</div>
</div>
<a class="anchor" id="a72ab55bf7ae009c89b75715cfa21e84d"></a><!-- doxytag: member="CSerializable.h::DEFINE_SERIALIZABLE" ref="a72ab55bf7ae009c89b75715cfa21e84d" args="(class_name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DEFINE_SERIALIZABLE</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">class_name</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>Value:</b><div class="fragment"><pre class="fragment"><a class="code" href="_c_object_8h.html#a89a1b701b9898005d954af26d92766fe" title="This declaration must be inserted in all CObject classes definition, within the class declaration...">DEFINE_MRPT_OBJECT</a>(class_name) \
                protected: \<span class="comment"></span>
<span class="comment">                        /*! @name CSerializable virtual methods */</span> \<span class="comment"></span>
<span class="comment">                        /*! @{ */</span> \
                        void  writeToStream(<a class="code" href="classmrpt_1_1utils_1_1_c_stream.html" title="This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...">mrpt::utils::CStream</a> &amp;out, <span class="keywordtype">int</span> *getVersion) <span class="keyword">const</span>;\
                        void  readFromStream(<a class="code" href="classmrpt_1_1utils_1_1_c_stream.html" title="This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...">mrpt::utils::CStream</a> &amp;in, <span class="keywordtype">int</span> version); \
</pre></div>
<p>This declaration must be inserted in all CSerializable classes definition, within the class declaration. </p>

<p>Definition at line <a class="el" href="_c_serializable_8h_source.html#l00262">262</a> of file <a class="el" href="_c_serializable_8h_source.html">CSerializable.h</a>.</p>

</div>
</div>
<a class="anchor" id="a5155da97198db5986e6369e2fe7a3539"></a><!-- doxytag: member="CSerializable.h::DEFINE_SERIALIZABLE_PRE" ref="a5155da97198db5986e6369e2fe7a3539" args="(class_name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DEFINE_SERIALIZABLE_PRE</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">class_name</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>Value:</b><div class="fragment"><pre class="fragment"><a class="code" href="_c_object_8h.html#afd9e3f83bf8b2ef843831523123740f1" title="This declaration must be inserted in all CObject classes definition, before the class declaration...">DEFINE_MRPT_OBJECT_PRE_CUSTOM_BASE_LINKAGE2</a>(class_name, <a class="code" href="namespacemrpt_1_1utils.html#a9f31abb393bf84af21fecce4c4070b40">CSerializable</a>, <a class="code" href="base_2include_2mrpt_2base_2link__pragmas_8h.html#a6045fa0129b1a3d6c8bf895470e66574">BASE_IMPEXP</a> class_name) <a class="code" href="namespacemrpt_1_1utils.html#a4aa6d0388c837d159ca801e48d601449">\</a>
<a class="code" href="namespacemrpt_1_1utils.html#a4aa6d0388c837d159ca801e48d601449">			BASE_IMPEXP ::mrpt::utils::CStream</a>&amp; <a class="code" href="namespacemrpt_1_1math.html#ab55e39255f4b544e7693867d22a70b91">operator&gt;&gt;</a>(<a class="code" href="classmrpt_1_1utils_1_1_c_stream.html" title="This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...">mrpt::utils::CStream</a>&amp; in, class_name##Ptr &amp;pObj);
</pre></div>
<p>This declaration must be inserted in all CSerializable classes definition, before the class declaration. </p>

<p>Definition at line <a class="el" href="_c_serializable_8h_source.html#l00280">280</a> of file <a class="el" href="_c_serializable_8h_source.html">CSerializable.h</a>.</p>

</div>
</div>
<a class="anchor" id="ab89b7a3de0a1baf5a5af4454add7d0f8"></a><!-- doxytag: member="CSerializable.h::DEFINE_SERIALIZABLE_PRE_CUSTOM_BASE" ref="ab89b7a3de0a1baf5a5af4454add7d0f8" args="(class_name, base_name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DEFINE_SERIALIZABLE_PRE_CUSTOM_BASE</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">class_name, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">base_name&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>Value:</b><div class="fragment"><pre class="fragment"><a class="code" href="_c_object_8h.html#a0e854723702802213de8c20bf5697bff">DEFINE_MRPT_OBJECT_PRE_CUSTOM_BASE_LINKAGE</a>(class_name, base_name, <a class="code" href="base_2include_2mrpt_2base_2link__pragmas_8h.html#a6045fa0129b1a3d6c8bf895470e66574">BASE_IMPEXP</a> ) <a class="code" href="namespacemrpt_1_1utils.html#a4aa6d0388c837d159ca801e48d601449">\</a>
<a class="code" href="namespacemrpt_1_1utils.html#a4aa6d0388c837d159ca801e48d601449">			BASE_IMPEXP ::mrpt::utils::CStream</a>&amp; <a class="code" href="namespacemrpt_1_1math.html#ab55e39255f4b544e7693867d22a70b91">operator&gt;&gt;</a>(<a class="code" href="classmrpt_1_1utils_1_1_c_stream.html" title="This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...">mrpt::utils::CStream</a>&amp; in, class_name##Ptr &amp;pObj);
</pre></div>
<p>This declaration must be inserted in all CSerializable classes definition, before the class declaration. </p>

<p>Definition at line <a class="el" href="_c_serializable_8h_source.html#l00293">293</a> of file <a class="el" href="_c_serializable_8h_source.html">CSerializable.h</a>.</p>

</div>
</div>
<a class="anchor" id="a9ef523d787f6cb837a0585b790882588"></a><!-- doxytag: member="CSerializable.h::DEFINE_SERIALIZABLE_PRE_CUSTOM_BASE_LINKAGE" ref="a9ef523d787f6cb837a0585b790882588" args="(class_name, base_name, _LINKAGE_)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DEFINE_SERIALIZABLE_PRE_CUSTOM_BASE_LINKAGE</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">class_name, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">base_name, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">_LINKAGE_&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>Value:</b><div class="fragment"><pre class="fragment"><a class="code" href="_c_object_8h.html#afd9e3f83bf8b2ef843831523123740f1" title="This declaration must be inserted in all CObject classes definition, before the class declaration...">DEFINE_MRPT_OBJECT_PRE_CUSTOM_BASE_LINKAGE2</a>(class_name, base_name, _LINKAGE_ class_name) <a class="code" href="namespacemrpt_1_1utils.html#a4aa6d0388c837d159ca801e48d601449">\</a>
<a class="code" href="namespacemrpt_1_1utils.html#a4aa6d0388c837d159ca801e48d601449">			_LINKAGE_ ::mrpt::utils::CStream</a>&amp; <a class="code" href="namespacemrpt_1_1math.html#ab55e39255f4b544e7693867d22a70b91">operator&gt;&gt;</a>(<a class="code" href="classmrpt_1_1utils_1_1_c_stream.html" title="This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...">mrpt::utils::CStream</a>&amp; in, class_name##Ptr &amp;pObj);
</pre></div>
<p>This declaration must be inserted in all CSerializable classes definition, before the class declaration. </p>

<p>Definition at line <a class="el" href="_c_serializable_8h_source.html#l00286">286</a> of file <a class="el" href="_c_serializable_8h_source.html">CSerializable.h</a>.</p>

</div>
</div>
<a class="anchor" id="a4f65adffe92332a1a157f834338b1d49"></a><!-- doxytag: member="CSerializable.h::DEFINE_SERIALIZABLE_PRE_CUSTOM_LINKAGE" ref="a4f65adffe92332a1a157f834338b1d49" args="(class_name, _LINKAGE_)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DEFINE_SERIALIZABLE_PRE_CUSTOM_LINKAGE</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">class_name, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">_LINKAGE_&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>Value:</b><div class="fragment"><pre class="fragment"><a class="code" href="_c_object_8h.html#afd9e3f83bf8b2ef843831523123740f1" title="This declaration must be inserted in all CObject classes definition, before the class declaration...">DEFINE_MRPT_OBJECT_PRE_CUSTOM_BASE_LINKAGE2</a>(class_name, <a class="code" href="namespacemrpt_1_1utils.html#a9f31abb393bf84af21fecce4c4070b40">CSerializable</a>, _LINKAGE_ class_name) <a class="code" href="namespacemrpt_1_1utils.html#a4aa6d0388c837d159ca801e48d601449">\</a>
<a class="code" href="namespacemrpt_1_1utils.html#a4aa6d0388c837d159ca801e48d601449">			_LINKAGE_ ::mrpt::utils::CStream</a>&amp; <a class="code" href="namespacemrpt_1_1math.html#ab55e39255f4b544e7693867d22a70b91">operator&gt;&gt;</a>(<a class="code" href="classmrpt_1_1utils_1_1_c_stream.html" title="This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...">mrpt::utils::CStream</a>&amp; in, class_name##Ptr &amp;pObj);
</pre></div>
<p>This declaration must be inserted in all CSerializable classes definition, before the class declaration. </p>

<p>Definition at line <a class="el" href="_c_serializable_8h_source.html#l00273">273</a> of file <a class="el" href="_c_serializable_8h_source.html">CSerializable.h</a>.</p>

</div>
</div>
<a class="anchor" id="a5876f72cf51bfb66a82bf81cc493febc"></a><!-- doxytag: member="CSerializable.h::DEFINE_VIRTUAL_SERIALIZABLE" ref="a5876f72cf51bfb66a82bf81cc493febc" args="(class_name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DEFINE_VIRTUAL_SERIALIZABLE</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">class_name</td><td>)</td>
          <td>&#160;&#160;&#160;DEFINE_VIRTUAL_MRPT_OBJECT(class_name)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This declaration must be inserted in virtual CSerializable classes definition: </p>

<p>Definition at line <a class="el" href="_c_serializable_8h_source.html#l00306">306</a> of file <a class="el" href="_c_serializable_8h_source.html">CSerializable.h</a>.</p>

</div>
</div>
<a class="anchor" id="a5720fe2c7372e6b325004e7bdc5dd692"></a><!-- doxytag: member="CSerializable.h::IMPLEMENTS_SERIALIZABLE" ref="a5720fe2c7372e6b325004e7bdc5dd692" args="(class_name, base, NameSpace)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define IMPLEMENTS_SERIALIZABLE</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">class_name, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">base, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">NameSpace&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>Value:</b><div class="fragment"><pre class="fragment"><a class="code" href="_c_object_8h.html#a821c31b2df70d6b3c0f8b0d49374a009" title="This must be inserted in all CObject classes implementation files.">IMPLEMENTS_MRPT_OBJECT</a>(class_name, base,NameSpace) <a class="code" href="namespacemrpt_1_1utils.html#a4aa6d0388c837d159ca801e48d601449">\</a>
<a class="code" href="namespacemrpt_1_1utils.html#a4aa6d0388c837d159ca801e48d601449">			mrpt::utils::CStream</a>&amp; <a class="code" href="namespacemrpt_1_1math.html#ab55e39255f4b544e7693867d22a70b91">NameSpace::operator&gt;&gt;</a>(<a class="code" href="classmrpt_1_1utils_1_1_c_stream.html" title="This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...">mrpt::utils::CStream</a>&amp; in, NameSpace::class_name##Ptr &amp;pObj) \
                        { pObj = NameSpace::class_name##Ptr( in.ReadObject() ); <span class="keywordflow">return</span> in; }
</pre></div>
<p>This must be inserted in all CSerializable classes implementation files: </p>

<p>Definition at line <a class="el" href="_c_serializable_8h_source.html#l00299">299</a> of file <a class="el" href="_c_serializable_8h_source.html">CSerializable.h</a>.</p>

</div>
</div>
<a class="anchor" id="a9dcb53a0dc06be1b78b78046f7e9757a"></a><!-- doxytag: member="CSerializable.h::IMPLEMENTS_VIRTUAL_SERIALIZABLE" ref="a9dcb53a0dc06be1b78b78046f7e9757a" args="(class_name, base_class_name, NameSpace)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define IMPLEMENTS_VIRTUAL_SERIALIZABLE</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">class_name, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">base_class_name, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">NameSpace&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>Value:</b><div class="fragment"><pre class="fragment"><a class="code" href="_c_object_8h.html#a3b29d8d0ead735ece9941e7a58619c7c" title="This must be inserted as implementation of some required members for virtual CSerializable classes:...">IMPLEMENTS_VIRTUAL_MRPT_OBJECT</a>(class_name, base_class_name,NameSpace) <a class="code" href="namespacemrpt_1_1utils.html#a4aa6d0388c837d159ca801e48d601449">\</a>
<a class="code" href="namespacemrpt_1_1utils.html#a4aa6d0388c837d159ca801e48d601449">			mrpt::utils::CStream</a>&amp; <a class="code" href="namespacemrpt_1_1math.html#ab55e39255f4b544e7693867d22a70b91">NameSpace::operator&gt;&gt;</a>(<a class="code" href="classmrpt_1_1utils_1_1_c_stream.html" title="This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...">mrpt::utils::CStream</a>&amp; in, class_name##Ptr &amp;pObj) \
                        { pObj = class_name##Ptr( in.ReadObject() ); <span class="keywordflow">return</span> in; }
</pre></div>
<p>This must be inserted as implementation of some required members for virtual CSerializable classes: </p>

<p>Definition at line <a class="el" href="_c_serializable_8h_source.html#l00312">312</a> of file <a class="el" href="_c_serializable_8h_source.html">CSerializable.h</a>.</p>

</div>
</div>
<a class="anchor" id="a3d50ead2a44af4340ef8e3a88b78df10"></a><!-- doxytag: member="CSerializable.h::MRPT_DECLARE_TTYPENAME" ref="a3d50ead2a44af4340ef8e3a88b78df10" args="(_TYPE)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MRPT_DECLARE_TTYPENAME</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">_TYPE</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>Value:</b><div class="fragment"><pre class="fragment"><span class="keyword">template</span>&lt;&gt; <span class="keyword">struct </span>TTypeName &lt;_TYPE &gt; { \
                                static std::string <span class="keyword">get</span>() { <span class="keywordflow">return</span> <a class="code" href="classstd_1_1string.html" title="STL class.">std::string</a>(#_TYPE); } };
</pre></div>
<p>Definition at line <a class="el" href="_c_serializable_8h_source.html#l00182">182</a> of file <a class="el" href="_c_serializable_8h_source.html">CSerializable.h</a>.</p>

</div>
</div>
<a class="anchor" id="a988f455c4e9dbf9c78f58adc75627fdc"></a><!-- doxytag: member="CSerializable.h::MRPT_DECLARE_TTYPENAME_CONTAINER" ref="a988f455c4e9dbf9c78f58adc75627fdc" args="(_CONTAINER)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MRPT_DECLARE_TTYPENAME_CONTAINER</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">_CONTAINER</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>Value:</b><div class="fragment"><pre class="fragment"><span class="keyword">template</span>&lt; <span class="keyword">typename</span> V &gt; \
                        struct TTypeName &lt;_CONTAINER&lt;V&gt; &gt; { \
                                static std::string <span class="keyword">get</span>() { \
                                        return <a class="code" href="classstd_1_1string.html" title="STL class.">std::string</a>( #_CONTAINER )+<a class="code" href="classstd_1_1string.html" title="STL class.">std::string</a>(<span class="stringliteral">&quot;&lt;&quot;</span>)+<a class="code" href="classstd_1_1string.html" title="STL class.">std::string</a>( TTypeName&lt;V&gt;::get() ) + <a class="code" href="classstd_1_1string.html" title="STL class.">std::string</a>(<span class="stringliteral">&quot;&gt;&quot;</span>); \
                                } \
                        };
</pre></div>
<p>Definition at line <a class="el" href="_c_serializable_8h_source.html#l00205">205</a> of file <a class="el" href="_c_serializable_8h_source.html">CSerializable.h</a>.</p>

</div>
</div>
<a class="anchor" id="aea6791b84a5804fa07c5a6923409b446"></a><!-- doxytag: member="CSerializable.h::MRPT_DECLARE_TTYPENAME_CONTAINER_ASSOC" ref="aea6791b84a5804fa07c5a6923409b446" args="(_CONTAINER)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MRPT_DECLARE_TTYPENAME_CONTAINER_ASSOC</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">_CONTAINER</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>Value:</b><div class="fragment"><pre class="fragment"><span class="keyword">template</span>&lt; <span class="keyword">typename</span> K, <span class="keyword">typename</span> V &gt; \
                        struct TTypeName &lt;_CONTAINER&lt;K,V&gt; &gt; { \
                                static std::string <span class="keyword">get</span>() { \
                                        return <a class="code" href="classstd_1_1string.html" title="STL class.">std::string</a>( #_CONTAINER )+<a class="code" href="classstd_1_1string.html" title="STL class.">std::string</a>(<span class="stringliteral">&quot;&lt;&quot;</span>)+<a class="code" href="classstd_1_1string.html" title="STL class.">std::string</a>( TTypeName&lt;K&gt;::get() )+ <a class="code" href="classstd_1_1string.html" title="STL class.">std::string</a>(<span class="stringliteral">&quot;,&quot;</span>)+<a class="code" href="classstd_1_1string.html" title="STL class.">std::string</a>( TTypeName&lt;V&gt;::get() )+<a class="code" href="classstd_1_1string.html" title="STL class.">std::string</a>(<span class="stringliteral">&quot;&gt;&quot;</span>); \
                                } \
                        };
</pre></div>
<p>Definition at line <a class="el" href="_c_serializable_8h_source.html#l00238">238</a> of file <a class="el" href="_c_serializable_8h_source.html">CSerializable.h</a>.</p>

</div>
</div>
<a class="anchor" id="a31a2cb66ebc61fff6cd6d5e3d9465c19"></a><!-- doxytag: member="CSerializable.h::MRPT_DECLARE_TTYPENAME_MAP_FOR_VECTOR" ref="a31a2cb66ebc61fff6cd6d5e3d9465c19" args="(_CONT)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MRPT_DECLARE_TTYPENAME_MAP_FOR_VECTOR</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">_CONT</td><td>)</td>
          <td>&#160;&#160;&#160;template&lt;&gt; struct TTypeName &lt;_CONT&gt; : TTypeName&lt;<a class="el" href="classstd_1_1vector.html">std::vector</a>&lt;_CONT::Scalar&gt; &gt; { };</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_serializable_8h_source.html#l00219">219</a> of file <a class="el" href="_c_serializable_8h_source.html">CSerializable.h</a>.</p>

</div>
</div>
<a class="anchor" id="a81695246461c7c04018786a6b6e75b6d"></a><!-- doxytag: member="CSerializable.h::MRPT_DECLARE_TTYPENAME_PTR" ref="a81695246461c7c04018786a6b6e75b6d" args="(_TYPE)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MRPT_DECLARE_TTYPENAME_PTR</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">_TYPE</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>Value:</b><div class="fragment"><pre class="fragment"><span class="keyword">template</span>&lt;&gt; <span class="keyword">struct </span>TTypeName &lt;_TYPE##Ptr&gt; { \
                        static std::string <span class="keyword">get</span>() { <span class="keywordflow">return</span> TTypeName&lt;_TYPE&gt;::get(); }    };
</pre></div>
<p>Definition at line <a class="el" href="_c_serializable_8h_source.html#l00186">186</a> of file <a class="el" href="_c_serializable_8h_source.html">CSerializable.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>