cereal/assets/doxygen/classcereal_1_1XMLOutputArchive.html
2022-02-27 19:48:38 -08:00

380 lines
33 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>cereal: cereal::XMLOutputArchive Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">cereal
</div>
<div id="projectbrief">A C++11 library for serialization</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><b>cereal</b></li><li class="navelem"><a class="el" href="classcereal_1_1XMLOutputArchive.html">XMLOutputArchive</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="classcereal_1_1XMLOutputArchive-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">cereal::XMLOutputArchive Class Reference<div class="ingroups"><a class="el" href="group__Archives.html">Input and Output Archive Types</a></div></div> </div>
</div><!--header-->
<div class="contents">
<p>An output archive designed to save data to XML.
<a href="classcereal_1_1XMLOutputArchive.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="xml_8hpp_source.html">/home/shane/workspace/cereal/include/cereal/archives/xml.hpp</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for cereal::XMLOutputArchive:</div>
<div class="dyncontent">
<div class="center">
<img src="classcereal_1_1XMLOutputArchive.png" usemap="#cereal::XMLOutputArchive_map" alt=""/>
<map id="cereal::XMLOutputArchive_map" name="cereal::XMLOutputArchive_map">
<area href="classcereal_1_1OutputArchive.html" alt="cereal::OutputArchive&lt; XMLOutputArchive &gt;" shape="rect" coords="0,56,269,80"/>
<area href="structcereal_1_1traits_1_1TextArchive.html" title="Type traits only struct used to mark an archive as human readable (text based)" alt="cereal::traits::TextArchive" shape="rect" coords="279,56,548,80"/>
<area href="classcereal_1_1detail_1_1OutputArchiveBase.html" alt="cereal::detail::OutputArchiveBase" shape="rect" coords="0,0,269,24"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcereal_1_1XMLOutputArchive_1_1NodeInfo.html">NodeInfo</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A struct that contains metadata about a node. <a href="structcereal_1_1XMLOutputArchive_1_1NodeInfo.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcereal_1_1XMLOutputArchive_1_1Options.html">Options</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A class containing various advanced options for the XML archive. <a href="classcereal_1_1XMLOutputArchive_1_1Options.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td colspan="2"><div class="groupHeader">Common Functionality</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p>Common use cases for directly interacting with an <a class="el" href="classcereal_1_1XMLOutputArchive.html" title="An output archive designed to save data to XML.">XMLOutputArchive</a> </p>
</div></td></tr>
<tr class="memitem:a38f4d3926118a014c72a56b1d7547dac"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcereal_1_1XMLOutputArchive.html#a38f4d3926118a014c72a56b1d7547dac">XMLOutputArchive</a> (std::ostream &amp;stream, <a class="el" href="classcereal_1_1XMLOutputArchive_1_1Options.html">Options</a> const &amp;options=<a class="el" href="classcereal_1_1XMLOutputArchive_1_1Options.html#ab7120fd4a284844186093c581e922c87">Options::Default</a>())</td></tr>
<tr class="memdesc:a38f4d3926118a014c72a56b1d7547dac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct, outputting to the provided stream upon destruction. <a href="classcereal_1_1XMLOutputArchive.html#a38f4d3926118a014c72a56b1d7547dac">More...</a><br /></td></tr>
<tr class="separator:a38f4d3926118a014c72a56b1d7547dac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a27af07bb73acbc1ad38d3f9a625e0d3c"><td class="memItemLeft" align="right" valign="top"><a id="a27af07bb73acbc1ad38d3f9a625e0d3c"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcereal_1_1XMLOutputArchive.html#a27af07bb73acbc1ad38d3f9a625e0d3c">~XMLOutputArchive</a> () <a class="el" href="macros_8hpp.html#a6c37b2307b83bbe2a3de58d78a2b8c0b">CEREAL_NOEXCEPT</a></td></tr>
<tr class="memdesc:a27af07bb73acbc1ad38d3f9a625e0d3c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor, flushes the XML. <br /></td></tr>
<tr class="separator:a27af07bb73acbc1ad38d3f9a625e0d3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2aa0db0f3e102d463b0cdb20e3caed10"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcereal_1_1XMLOutputArchive.html#a2aa0db0f3e102d463b0cdb20e3caed10">saveBinaryValue</a> (const void *data, size_t size, const char *name=nullptr)</td></tr>
<tr class="memdesc:a2aa0db0f3e102d463b0cdb20e3caed10"><td class="mdescLeft">&#160;</td><td class="mdescRight">Saves some binary data, encoded as a base64 string, with an optional name. <a href="classcereal_1_1XMLOutputArchive.html#a2aa0db0f3e102d463b0cdb20e3caed10">More...</a><br /></td></tr>
<tr class="separator:a2aa0db0f3e102d463b0cdb20e3caed10"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Internal Functionality</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p>Functionality designed for use by those requiring control over the inner mechanisms of the <a class="el" href="classcereal_1_1XMLOutputArchive.html" title="An output archive designed to save data to XML.">XMLOutputArchive</a> </p>
</div></td></tr>
<tr class="memitem:a3a5f5505fa97e7544ae4f027ccba27d5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcereal_1_1XMLOutputArchive.html#a3a5f5505fa97e7544ae4f027ccba27d5">startNode</a> ()</td></tr>
<tr class="memdesc:a3a5f5505fa97e7544ae4f027ccba27d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a new node that is a child of the node at the top of the stack. <a href="classcereal_1_1XMLOutputArchive.html#a3a5f5505fa97e7544ae4f027ccba27d5">More...</a><br /></td></tr>
<tr class="separator:a3a5f5505fa97e7544ae4f027ccba27d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa71de505f1aa29fe74065df4bbb39d7e"><td class="memItemLeft" align="right" valign="top"><a id="aa71de505f1aa29fe74065df4bbb39d7e"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcereal_1_1XMLOutputArchive.html#aa71de505f1aa29fe74065df4bbb39d7e">finishNode</a> ()</td></tr>
<tr class="memdesc:aa71de505f1aa29fe74065df4bbb39d7e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Designates the most recently added node as finished. <br /></td></tr>
<tr class="separator:aa71de505f1aa29fe74065df4bbb39d7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa301c06076e60466516f7d69198c2185"><td class="memItemLeft" align="right" valign="top"><a id="aa301c06076e60466516f7d69198c2185"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcereal_1_1XMLOutputArchive.html#aa301c06076e60466516f7d69198c2185">setNextName</a> (const char *name)</td></tr>
<tr class="memdesc:aa301c06076e60466516f7d69198c2185"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the name for the next node created with startNode. <br /></td></tr>
<tr class="separator:aa301c06076e60466516f7d69198c2185"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9024955d0fd8cf818bf068d3814b9e09"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:a9024955d0fd8cf818bf068d3814b9e09"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classcereal_1_1XMLOutputArchive.html#a9024955d0fd8cf818bf068d3814b9e09">saveValue</a> (T const &amp;value)</td></tr>
<tr class="memdesc:a9024955d0fd8cf818bf068d3814b9e09"><td class="mdescLeft">&#160;</td><td class="mdescRight">Saves some data, encoded as a string, into the current top level node. <a href="classcereal_1_1XMLOutputArchive.html#a9024955d0fd8cf818bf068d3814b9e09">More...</a><br /></td></tr>
<tr class="separator:a9024955d0fd8cf818bf068d3814b9e09"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2d85b7350ab575fedeebcc0c31a56777"><td class="memItemLeft" align="right" valign="top"><a id="a2d85b7350ab575fedeebcc0c31a56777"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcereal_1_1XMLOutputArchive.html#a2d85b7350ab575fedeebcc0c31a56777">saveValue</a> (uint8_t const &amp;value)</td></tr>
<tr class="memdesc:a2d85b7350ab575fedeebcc0c31a56777"><td class="mdescLeft">&#160;</td><td class="mdescRight">Overload for uint8_t prevents them from being serialized as characters. <br /></td></tr>
<tr class="separator:a2d85b7350ab575fedeebcc0c31a56777"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a05f3803cec394e287d1088bc78f2381b"><td class="memItemLeft" align="right" valign="top"><a id="a05f3803cec394e287d1088bc78f2381b"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcereal_1_1XMLOutputArchive.html#a05f3803cec394e287d1088bc78f2381b">saveValue</a> (int8_t const &amp;value)</td></tr>
<tr class="memdesc:a05f3803cec394e287d1088bc78f2381b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Overload for int8_t prevents them from being serialized as characters. <br /></td></tr>
<tr class="separator:a05f3803cec394e287d1088bc78f2381b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4af064c2dc6a9451ef9a4dd93bdd304e"><td class="memTemplParams" colspan="2"><a id="a4af064c2dc6a9451ef9a4dd93bdd304e"></a>
template&lt;class T &gt; </td></tr>
<tr class="memitem:a4af064c2dc6a9451ef9a4dd93bdd304e"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classcereal_1_1XMLOutputArchive.html#a4af064c2dc6a9451ef9a4dd93bdd304e">insertType</a> ()</td></tr>
<tr class="memdesc:a4af064c2dc6a9451ef9a4dd93bdd304e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Causes the type to be appended as an attribute to the most recently made node if output type is set to true. <br /></td></tr>
<tr class="separator:a4af064c2dc6a9451ef9a4dd93bdd304e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afbc756983609a1600576faff3c558c57"><td class="memItemLeft" align="right" valign="top"><a id="afbc756983609a1600576faff3c558c57"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcereal_1_1XMLOutputArchive.html#afbc756983609a1600576faff3c558c57">appendAttribute</a> (const char *name, const char *value)</td></tr>
<tr class="memdesc:afbc756983609a1600576faff3c558c57"><td class="mdescLeft">&#160;</td><td class="mdescRight">Appends an attribute to the current top level node. <br /></td></tr>
<tr class="separator:afbc756983609a1600576faff3c558c57"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ee4939c2a9023004e83d61457415e63"><td class="memItemLeft" align="right" valign="top"><a id="a5ee4939c2a9023004e83d61457415e63"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>hasSizeAttributes</b> () const</td></tr>
<tr class="separator:a5ee4939c2a9023004e83d61457415e63"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classcereal_1_1OutputArchive"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classcereal_1_1OutputArchive')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classcereal_1_1OutputArchive.html">cereal::OutputArchive&lt; XMLOutputArchive &gt;</a></td></tr>
<tr class="memitem:a98fbde73bf6d41f4e717e91011e3be7f inherit pub_methods_classcereal_1_1OutputArchive"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcereal_1_1OutputArchive.html#a98fbde73bf6d41f4e717e91011e3be7f">OutputArchive</a> (<a class="el" href="classcereal_1_1XMLOutputArchive.html">XMLOutputArchive</a> *const derived)</td></tr>
<tr class="memdesc:a98fbde73bf6d41f4e717e91011e3be7f inherit pub_methods_classcereal_1_1OutputArchive"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct the output archive. <a href="classcereal_1_1OutputArchive.html#a98fbde73bf6d41f4e717e91011e3be7f">More...</a><br /></td></tr>
<tr class="separator:a98fbde73bf6d41f4e717e91011e3be7f inherit pub_methods_classcereal_1_1OutputArchive"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c6421d26bc4d2cd95db038c3ce91a49 inherit pub_methods_classcereal_1_1OutputArchive"><td class="memItemLeft" align="right" valign="top"><a id="a2c6421d26bc4d2cd95db038c3ce91a49"></a>
<a class="el" href="classcereal_1_1OutputArchive.html">OutputArchive</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (<a class="el" href="classcereal_1_1OutputArchive.html">OutputArchive</a> const &amp;)=delete</td></tr>
<tr class="separator:a2c6421d26bc4d2cd95db038c3ce91a49 inherit pub_methods_classcereal_1_1OutputArchive"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abef67f45c79d199c690359715905987b inherit pub_methods_classcereal_1_1OutputArchive"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcereal_1_1XMLOutputArchive.html">XMLOutputArchive</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcereal_1_1OutputArchive.html#abef67f45c79d199c690359715905987b">operator()</a> (Types &amp;&amp;... args)</td></tr>
<tr class="memdesc:abef67f45c79d199c690359715905987b inherit pub_methods_classcereal_1_1OutputArchive"><td class="mdescLeft">&#160;</td><td class="mdescRight">Serializes all passed in data. <a href="classcereal_1_1OutputArchive.html#abef67f45c79d199c690359715905987b">More...</a><br /></td></tr>
<tr class="separator:abef67f45c79d199c690359715905987b inherit pub_methods_classcereal_1_1OutputArchive"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac0070bbf21d6a02a48d55b8052b90f64 inherit pub_methods_classcereal_1_1OutputArchive"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcereal_1_1OutputArchive.html#ac0070bbf21d6a02a48d55b8052b90f64">serializeDeferments</a> ()</td></tr>
<tr class="memdesc:ac0070bbf21d6a02a48d55b8052b90f64 inherit pub_methods_classcereal_1_1OutputArchive"><td class="mdescLeft">&#160;</td><td class="mdescRight">Serializes any data marked for deferment using defer. <a href="classcereal_1_1OutputArchive.html#ac0070bbf21d6a02a48d55b8052b90f64">More...</a><br /></td></tr>
<tr class="separator:ac0070bbf21d6a02a48d55b8052b90f64 inherit pub_methods_classcereal_1_1OutputArchive"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0efb18ad82f46327f48449e84222328b inherit pub_methods_classcereal_1_1OutputArchive"><td class="memItemLeft" align="right" valign="top">std::uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcereal_1_1OutputArchive.html#a0efb18ad82f46327f48449e84222328b">registerSharedPointer</a> (const std::shared_ptr&lt; const void &gt; &amp;sharedPointer)</td></tr>
<tr class="memdesc:a0efb18ad82f46327f48449e84222328b inherit pub_methods_classcereal_1_1OutputArchive"><td class="mdescLeft">&#160;</td><td class="mdescRight">Registers a shared pointer with the archive. <a href="classcereal_1_1OutputArchive.html#a0efb18ad82f46327f48449e84222328b">More...</a><br /></td></tr>
<tr class="separator:a0efb18ad82f46327f48449e84222328b inherit pub_methods_classcereal_1_1OutputArchive"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abf97e7c48f6d307d6fa87d4b3fd3ad0e inherit pub_methods_classcereal_1_1OutputArchive"><td class="memItemLeft" align="right" valign="top">std::uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcereal_1_1OutputArchive.html#abf97e7c48f6d307d6fa87d4b3fd3ad0e">registerPolymorphicType</a> (char const *name)</td></tr>
<tr class="memdesc:abf97e7c48f6d307d6fa87d4b3fd3ad0e inherit pub_methods_classcereal_1_1OutputArchive"><td class="mdescLeft">&#160;</td><td class="mdescRight">Registers a polymorphic type name with the archive. <a href="classcereal_1_1OutputArchive.html#abf97e7c48f6d307d6fa87d4b3fd3ad0e">More...</a><br /></td></tr>
<tr class="separator:abf97e7c48f6d307d6fa87d4b3fd3ad0e inherit pub_methods_classcereal_1_1OutputArchive"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4788dde3f0691f0dbbfc14fe6e2997cd inherit pub_methods_classcereal_1_1OutputArchive"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcereal_1_1XMLOutputArchive.html">XMLOutputArchive</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcereal_1_1OutputArchive.html#a4788dde3f0691f0dbbfc14fe6e2997cd">operator&amp;</a> (T &amp;&amp;arg)</td></tr>
<tr class="memdesc:a4788dde3f0691f0dbbfc14fe6e2997cd inherit pub_methods_classcereal_1_1OutputArchive"><td class="mdescLeft">&#160;</td><td class="mdescRight">Serializes passed in data. <a href="classcereal_1_1OutputArchive.html#a4788dde3f0691f0dbbfc14fe6e2997cd">More...</a><br /></td></tr>
<tr class="separator:a4788dde3f0691f0dbbfc14fe6e2997cd inherit pub_methods_classcereal_1_1OutputArchive"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0316f5791b140979aea2c915e4618236 inherit pub_methods_classcereal_1_1OutputArchive"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classcereal_1_1XMLOutputArchive.html">XMLOutputArchive</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcereal_1_1OutputArchive.html#a0316f5791b140979aea2c915e4618236">operator&lt;&lt;</a> (T &amp;&amp;arg)</td></tr>
<tr class="memdesc:a0316f5791b140979aea2c915e4618236 inherit pub_methods_classcereal_1_1OutputArchive"><td class="mdescLeft">&#160;</td><td class="mdescRight">Serializes passed in data. <a href="classcereal_1_1OutputArchive.html#a0316f5791b140979aea2c915e4618236">More...</a><br /></td></tr>
<tr class="separator:a0316f5791b140979aea2c915e4618236 inherit pub_methods_classcereal_1_1OutputArchive"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classcereal_1_1detail_1_1OutputArchiveBase"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classcereal_1_1detail_1_1OutputArchiveBase')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classcereal_1_1detail_1_1OutputArchiveBase.html">cereal::detail::OutputArchiveBase</a></td></tr>
<tr class="memitem:a4cbe03d4e35e298aaab32eaf117021be inherit pub_methods_classcereal_1_1detail_1_1OutputArchiveBase"><td class="memItemLeft" align="right" valign="top"><a id="a4cbe03d4e35e298aaab32eaf117021be"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>OutputArchiveBase</b> (<a class="el" href="classcereal_1_1detail_1_1OutputArchiveBase.html">OutputArchiveBase</a> &amp;&amp;) <a class="el" href="macros_8hpp.html#a6c37b2307b83bbe2a3de58d78a2b8c0b">CEREAL_NOEXCEPT</a></td></tr>
<tr class="separator:a4cbe03d4e35e298aaab32eaf117021be inherit pub_methods_classcereal_1_1detail_1_1OutputArchiveBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afd5f88c3cc3ef044eea98df20b1f01db inherit pub_methods_classcereal_1_1detail_1_1OutputArchiveBase"><td class="memItemLeft" align="right" valign="top"><a id="afd5f88c3cc3ef044eea98df20b1f01db"></a>
<a class="el" href="classcereal_1_1detail_1_1OutputArchiveBase.html">OutputArchiveBase</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (<a class="el" href="classcereal_1_1detail_1_1OutputArchiveBase.html">OutputArchiveBase</a> &amp;&amp;) <a class="el" href="macros_8hpp.html#a6c37b2307b83bbe2a3de58d78a2b8c0b">CEREAL_NOEXCEPT</a></td></tr>
<tr class="separator:afd5f88c3cc3ef044eea98df20b1f01db inherit pub_methods_classcereal_1_1detail_1_1OutputArchiveBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_types_classcereal_1_1OutputArchive"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classcereal_1_1OutputArchive')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classcereal_1_1OutputArchive.html">cereal::OutputArchive&lt; XMLOutputArchive &gt;</a></td></tr>
<tr class="memitem:a8f3be4fe8a965bbce4eb1cf36068e611 inherit pub_types_classcereal_1_1OutputArchive"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcereal_1_1OutputArchive.html#a8f3be4fe8a965bbce4eb1cf36068e611">is_loading</a> = std::false_type</td></tr>
<tr class="memdesc:a8f3be4fe8a965bbce4eb1cf36068e611 inherit pub_types_classcereal_1_1OutputArchive"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates this archive is not intended for loading. <a href="classcereal_1_1OutputArchive.html#a8f3be4fe8a965bbce4eb1cf36068e611">More...</a><br /></td></tr>
<tr class="separator:a8f3be4fe8a965bbce4eb1cf36068e611 inherit pub_types_classcereal_1_1OutputArchive"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad48175118ea9b931ef42a74f8efd0389 inherit pub_types_classcereal_1_1OutputArchive"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcereal_1_1OutputArchive.html#ad48175118ea9b931ef42a74f8efd0389">is_saving</a> = std::true_type</td></tr>
<tr class="memdesc:ad48175118ea9b931ef42a74f8efd0389 inherit pub_types_classcereal_1_1OutputArchive"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates this archive is intended for saving. <a href="classcereal_1_1OutputArchive.html#ad48175118ea9b931ef42a74f8efd0389">More...</a><br /></td></tr>
<tr class="separator:ad48175118ea9b931ef42a74f8efd0389 inherit pub_types_classcereal_1_1OutputArchive"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>An output archive designed to save data to XML. </p>
<p>This archive uses RapidXML to build an in memory XML tree of the data it serializes before outputting it to its stream upon destruction. This archive should be used in an RAII fashion, letting the automatic destruction of the object cause the flush to its stream.</p>
<p>XML archives provides a human readable output but at decreased performance (both in time and space) compared to binary archives.</p>
<p>XML benefits greatly from name-value pairs, which if present, will name the nodes in the output. If these are not present, each level of the output tree will be given an automatically generated delimited name.</p>
<p>The precision of the output archive controls the number of decimals output for floating point numbers and should be sufficiently large (i.e. at least 20) if there is a desire to have binary equality between the numbers output and those read in. In general you should expect a loss of precision when going from floating point to text and back.</p>
<p>XML archives can optionally print the type of everything they serialize, which adds an attribute to each node.</p>
<p>XML archives do not output the size information for any dynamically sized structure and instead infer it from the number of children for a node. This means that data can be hand edited for dynamic sized structures and will still be readable. This is accomplished through the <a class="el" href="classcereal_1_1SizeTag.html" title="A wrapper around size metadata.">cereal::SizeTag</a> object, which will also add an attribute to its parent field. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a38f4d3926118a014c72a56b1d7547dac"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a38f4d3926118a014c72a56b1d7547dac">&#9670;&nbsp;</a></span>XMLOutputArchive()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">cereal::XMLOutputArchive::XMLOutputArchive </td>
<td>(</td>
<td class="paramtype">std::ostream &amp;&#160;</td>
<td class="paramname"><em>stream</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classcereal_1_1XMLOutputArchive_1_1Options.html">Options</a> const &amp;&#160;</td>
<td class="paramname"><em>options</em> = <code><a class="el" href="classcereal_1_1XMLOutputArchive_1_1Options.html#ab7120fd4a284844186093c581e922c87">Options::Default</a>()</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Construct, outputting to the provided stream upon destruction. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">stream</td><td>The stream to output to. Note that XML is only guaranteed to flush its output to the stream upon destruction. </td></tr>
<tr><td class="paramname">options</td><td>The XML specific options to use. See the <a class="el" href="classcereal_1_1XMLOutputArchive_1_1Options.html" title="A class containing various advanced options for the XML archive.">Options</a> struct for the values of default parameters </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a2aa0db0f3e102d463b0cdb20e3caed10"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2aa0db0f3e102d463b0cdb20e3caed10">&#9670;&nbsp;</a></span>saveBinaryValue()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void cereal::XMLOutputArchive::saveBinaryValue </td>
<td>(</td>
<td class="paramtype">const void *&#160;</td>
<td class="paramname"><em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>name</em> = <code>nullptr</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Saves some binary data, encoded as a base64 string, with an optional name. </p>
<p>This can be called directly by users and it will automatically create a child node for the current XML node, populate it with a base64 encoded string, and optionally name it. The node will be finished after it has been populated. <br />
</p>
</div>
</div>
<a id="a9024955d0fd8cf818bf068d3814b9e09"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9024955d0fd8cf818bf068d3814b9e09">&#9670;&nbsp;</a></span>saveValue()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void cereal::XMLOutputArchive::saveValue </td>
<td>(</td>
<td class="paramtype">T const &amp;&#160;</td>
<td class="paramname"><em>value</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Saves some data, encoded as a string, into the current top level node. </p>
<p>The data will be be named with the most recent name if one exists, otherwise it will be given some default delimited value that depends upon the parent node </p>
</div>
</div>
<a id="a3a5f5505fa97e7544ae4f027ccba27d5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3a5f5505fa97e7544ae4f027ccba27d5">&#9670;&nbsp;</a></span>startNode()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void cereal::XMLOutputArchive::startNode </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Creates a new node that is a child of the node at the top of the stack. </p>
<p>Nodes will be given a name that has either been pre-set by a name value pair, or generated based upon a counter unique to the parent node. If you want to give a node a specific name, use setNextName prior to calling startNode.</p>
<p>The node will then be pushed onto the node stack. </p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="xml_8hpp_source.html">xml.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- HTML footer for doxygen 1.8.3.1-->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sun Feb 27 2022 19:46:46 for cereal by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-42360142-1', 'uscilab.github.io');
ga('send', 'pageview');
</script>
</body>
</html>