mirror of
https://github.com/USCiLab/cereal.git
synced 2025-07-21 02:12:01 +02:00
447 lines
40 KiB
HTML
447 lines
40 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::JSONOutputArchive 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&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&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_1JSONOutputArchive.html">JSONOutputArchive</a></li> </ul>
|
|
</div>
|
|
</div><!-- top -->
|
|
<div class="header">
|
|
<div class="summary">
|
|
<a href="#nested-classes">Classes</a> |
|
|
<a href="classcereal_1_1JSONOutputArchive-members.html">List of all members</a> </div>
|
|
<div class="headertitle">
|
|
<div class="title">cereal::JSONOutputArchive 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 JSON.
|
|
<a href="classcereal_1_1JSONOutputArchive.html#details">More...</a></p>
|
|
|
|
<p><code>#include <<a class="el" href="json_8hpp_source.html">/home/shane/workspace/cereal/include/cereal/archives/json.hpp</a>></code></p>
|
|
<div class="dynheader">
|
|
Inheritance diagram for cereal::JSONOutputArchive:</div>
|
|
<div class="dyncontent">
|
|
<div class="center">
|
|
<img src="classcereal_1_1JSONOutputArchive.png" usemap="#cereal::JSONOutputArchive_map" alt=""/>
|
|
<map id="cereal::JSONOutputArchive_map" name="cereal::JSONOutputArchive_map">
|
|
<area href="classcereal_1_1OutputArchive.html" alt="cereal::OutputArchive< JSONOutputArchive >" shape="rect" coords="0,56,276,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="286,56,562,80"/>
|
|
<area href="classcereal_1_1detail_1_1OutputArchiveBase.html" alt="cereal::detail::OutputArchiveBase" shape="rect" coords="0,0,276,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">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classcereal_1_1JSONOutputArchive_1_1Options.html">Options</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">A class containing various advanced options for the JSON archive. <a href="classcereal_1_1JSONOutputArchive_1_1Options.html#details">More...</a><br /></td></tr>
|
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </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_1JSONOutputArchive.html" title="An output archive designed to save data to JSON.">JSONOutputArchive</a> </p>
|
|
</div></td></tr>
|
|
<tr class="memitem:a87fef1f545417ca857e00f1af5a70701"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcereal_1_1JSONOutputArchive.html#a87fef1f545417ca857e00f1af5a70701">JSONOutputArchive</a> (std::ostream &stream, <a class="el" href="classcereal_1_1JSONOutputArchive_1_1Options.html">Options</a> const &options=<a class="el" href="classcereal_1_1JSONOutputArchive_1_1Options.html#a82ac8216b731ffc3669c9a16e18efc86">Options::Default</a>())</td></tr>
|
|
<tr class="memdesc:a87fef1f545417ca857e00f1af5a70701"><td class="mdescLeft"> </td><td class="mdescRight">Construct, outputting to the provided stream. <a href="classcereal_1_1JSONOutputArchive.html#a87fef1f545417ca857e00f1af5a70701">More...</a><br /></td></tr>
|
|
<tr class="separator:a87fef1f545417ca857e00f1af5a70701"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a7402beb96980d4d540c5bb625bf6ea83"><td class="memItemLeft" align="right" valign="top"><a id="a7402beb96980d4d540c5bb625bf6ea83"></a>
|
|
 </td><td class="memItemRight" valign="bottom"><a class="el" href="classcereal_1_1JSONOutputArchive.html#a7402beb96980d4d540c5bb625bf6ea83">~JSONOutputArchive</a> () <a class="el" href="macros_8hpp.html#a6c37b2307b83bbe2a3de58d78a2b8c0b">CEREAL_NOEXCEPT</a></td></tr>
|
|
<tr class="memdesc:a7402beb96980d4d540c5bb625bf6ea83"><td class="mdescLeft"> </td><td class="mdescRight">Destructor, flushes the JSON. <br /></td></tr>
|
|
<tr class="separator:a7402beb96980d4d540c5bb625bf6ea83"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a1833e8351413e686130e7794c712639b"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcereal_1_1JSONOutputArchive.html#a1833e8351413e686130e7794c712639b">saveBinaryValue</a> (const void *data, size_t size, const char *name=nullptr)</td></tr>
|
|
<tr class="memdesc:a1833e8351413e686130e7794c712639b"><td class="mdescLeft"> </td><td class="mdescRight">Saves some binary data, encoded as a base64 string, with an optional name. <a href="classcereal_1_1JSONOutputArchive.html#a1833e8351413e686130e7794c712639b">More...</a><br /></td></tr>
|
|
<tr class="separator:a1833e8351413e686130e7794c712639b"><td class="memSeparator" colspan="2"> </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="-"/> Public Member Functions inherited from <a class="el" href="classcereal_1_1OutputArchive.html">cereal::OutputArchive< JSONOutputArchive ></a></td></tr>
|
|
<tr class="memitem:a98fbde73bf6d41f4e717e91011e3be7f inherit pub_methods_classcereal_1_1OutputArchive"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcereal_1_1OutputArchive.html#a98fbde73bf6d41f4e717e91011e3be7f">OutputArchive</a> (<a class="el" href="classcereal_1_1JSONOutputArchive.html">JSONOutputArchive</a> *const derived)</td></tr>
|
|
<tr class="memdesc:a98fbde73bf6d41f4e717e91011e3be7f inherit pub_methods_classcereal_1_1OutputArchive"><td class="mdescLeft"> </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"> </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> & </td><td class="memItemRight" valign="bottom"><b>operator=</b> (<a class="el" href="classcereal_1_1OutputArchive.html">OutputArchive</a> const &)=delete</td></tr>
|
|
<tr class="separator:a2c6421d26bc4d2cd95db038c3ce91a49 inherit pub_methods_classcereal_1_1OutputArchive"><td class="memSeparator" colspan="2"> </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_1JSONOutputArchive.html">JSONOutputArchive</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classcereal_1_1OutputArchive.html#abef67f45c79d199c690359715905987b">operator()</a> (Types &&... args)</td></tr>
|
|
<tr class="memdesc:abef67f45c79d199c690359715905987b inherit pub_methods_classcereal_1_1OutputArchive"><td class="mdescLeft"> </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"> </td></tr>
|
|
<tr class="memitem:ac0070bbf21d6a02a48d55b8052b90f64 inherit pub_methods_classcereal_1_1OutputArchive"><td class="memItemLeft" align="right" valign="top">void </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"> </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"> </td></tr>
|
|
<tr class="memitem:a0efb18ad82f46327f48449e84222328b inherit pub_methods_classcereal_1_1OutputArchive"><td class="memItemLeft" align="right" valign="top">std::uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classcereal_1_1OutputArchive.html#a0efb18ad82f46327f48449e84222328b">registerSharedPointer</a> (const std::shared_ptr< const void > &sharedPointer)</td></tr>
|
|
<tr class="memdesc:a0efb18ad82f46327f48449e84222328b inherit pub_methods_classcereal_1_1OutputArchive"><td class="mdescLeft"> </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"> </td></tr>
|
|
<tr class="memitem:abf97e7c48f6d307d6fa87d4b3fd3ad0e inherit pub_methods_classcereal_1_1OutputArchive"><td class="memItemLeft" align="right" valign="top">std::uint32_t </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"> </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"> </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_1JSONOutputArchive.html">JSONOutputArchive</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classcereal_1_1OutputArchive.html#a4788dde3f0691f0dbbfc14fe6e2997cd">operator&</a> (T &&arg)</td></tr>
|
|
<tr class="memdesc:a4788dde3f0691f0dbbfc14fe6e2997cd inherit pub_methods_classcereal_1_1OutputArchive"><td class="mdescLeft"> </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"> </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_1JSONOutputArchive.html">JSONOutputArchive</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classcereal_1_1OutputArchive.html#a0316f5791b140979aea2c915e4618236">operator<<</a> (T &&arg)</td></tr>
|
|
<tr class="memdesc:a0316f5791b140979aea2c915e4618236 inherit pub_methods_classcereal_1_1OutputArchive"><td class="mdescLeft"> </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"> </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="-"/> 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>
|
|
 </td><td class="memItemRight" valign="bottom"><b>OutputArchiveBase</b> (<a class="el" href="classcereal_1_1detail_1_1OutputArchiveBase.html">OutputArchiveBase</a> &&) <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"> </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> & </td><td class="memItemRight" valign="bottom"><b>operator=</b> (<a class="el" href="classcereal_1_1detail_1_1OutputArchiveBase.html">OutputArchiveBase</a> &&) <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"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
|
|
Internal Functionality</h2></td></tr>
|
|
<tr><td class="ititle" colspan="2"><p><a class="anchor" id="amgrp8296ede30ade5ce62480f6d69593ed0b"></a>Functionality designed for use by those requiring control over the inner mechanisms of the <a class="el" href="classcereal_1_1JSONOutputArchive.html" title="An output archive designed to save data to JSON.">JSONOutputArchive</a> </p>
|
|
</td></tr>
|
|
<tr class="memitem:acae7982ee23cacf07cb6c4326818e6b8"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcereal_1_1JSONOutputArchive.html#acae7982ee23cacf07cb6c4326818e6b8">startNode</a> ()</td></tr>
|
|
<tr class="memdesc:acae7982ee23cacf07cb6c4326818e6b8"><td class="mdescLeft"> </td><td class="mdescRight">Starts a new node in the JSON output. <a href="classcereal_1_1JSONOutputArchive.html#acae7982ee23cacf07cb6c4326818e6b8">More...</a><br /></td></tr>
|
|
<tr class="separator:acae7982ee23cacf07cb6c4326818e6b8"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a32e7d7fe0a75d7e3cc990362c41edf81"><td class="memItemLeft" align="right" valign="top"><a id="a32e7d7fe0a75d7e3cc990362c41edf81"></a>
|
|
void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcereal_1_1JSONOutputArchive.html#a32e7d7fe0a75d7e3cc990362c41edf81">finishNode</a> ()</td></tr>
|
|
<tr class="memdesc:a32e7d7fe0a75d7e3cc990362c41edf81"><td class="mdescLeft"> </td><td class="mdescRight">Designates the most recently added node as finished. <br /></td></tr>
|
|
<tr class="separator:a32e7d7fe0a75d7e3cc990362c41edf81"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a399c034dd0be17597b4cf9fe2e9bf050"><td class="memItemLeft" align="right" valign="top"><a id="a399c034dd0be17597b4cf9fe2e9bf050"></a>
|
|
void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcereal_1_1JSONOutputArchive.html#a399c034dd0be17597b4cf9fe2e9bf050">setNextName</a> (const char *name)</td></tr>
|
|
<tr class="memdesc:a399c034dd0be17597b4cf9fe2e9bf050"><td class="mdescLeft"> </td><td class="mdescRight">Sets the name for the next node created with startNode. <br /></td></tr>
|
|
<tr class="separator:a399c034dd0be17597b4cf9fe2e9bf050"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a3279cbcf2b5cd73c4f8299aa4e8702b4"><td class="memItemLeft" align="right" valign="top"><a id="a3279cbcf2b5cd73c4f8299aa4e8702b4"></a>
|
|
void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcereal_1_1JSONOutputArchive.html#a3279cbcf2b5cd73c4f8299aa4e8702b4">saveValue</a> (bool b)</td></tr>
|
|
<tr class="memdesc:a3279cbcf2b5cd73c4f8299aa4e8702b4"><td class="mdescLeft"> </td><td class="mdescRight">Saves a bool to the current node. <br /></td></tr>
|
|
<tr class="separator:a3279cbcf2b5cd73c4f8299aa4e8702b4"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a62917f155424234bc29cfb0b8280be3a"><td class="memItemLeft" align="right" valign="top"><a id="a62917f155424234bc29cfb0b8280be3a"></a>
|
|
void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcereal_1_1JSONOutputArchive.html#a62917f155424234bc29cfb0b8280be3a">saveValue</a> (int i)</td></tr>
|
|
<tr class="memdesc:a62917f155424234bc29cfb0b8280be3a"><td class="mdescLeft"> </td><td class="mdescRight">Saves an int to the current node. <br /></td></tr>
|
|
<tr class="separator:a62917f155424234bc29cfb0b8280be3a"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aad0636d0a75fdd4187d572479ce14ae1"><td class="memItemLeft" align="right" valign="top"><a id="aad0636d0a75fdd4187d572479ce14ae1"></a>
|
|
void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcereal_1_1JSONOutputArchive.html#aad0636d0a75fdd4187d572479ce14ae1">saveValue</a> (unsigned u)</td></tr>
|
|
<tr class="memdesc:aad0636d0a75fdd4187d572479ce14ae1"><td class="mdescLeft"> </td><td class="mdescRight">Saves a uint to the current node. <br /></td></tr>
|
|
<tr class="separator:aad0636d0a75fdd4187d572479ce14ae1"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a579aa488b2a27e1afd37516962993876"><td class="memItemLeft" align="right" valign="top"><a id="a579aa488b2a27e1afd37516962993876"></a>
|
|
void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcereal_1_1JSONOutputArchive.html#a579aa488b2a27e1afd37516962993876">saveValue</a> (int64_t i64)</td></tr>
|
|
<tr class="memdesc:a579aa488b2a27e1afd37516962993876"><td class="mdescLeft"> </td><td class="mdescRight">Saves an int64 to the current node. <br /></td></tr>
|
|
<tr class="separator:a579aa488b2a27e1afd37516962993876"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:afb683b1f868478d1797b1c19bb5d6375"><td class="memItemLeft" align="right" valign="top"><a id="afb683b1f868478d1797b1c19bb5d6375"></a>
|
|
void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcereal_1_1JSONOutputArchive.html#afb683b1f868478d1797b1c19bb5d6375">saveValue</a> (uint64_t u64)</td></tr>
|
|
<tr class="memdesc:afb683b1f868478d1797b1c19bb5d6375"><td class="mdescLeft"> </td><td class="mdescRight">Saves a uint64 to the current node. <br /></td></tr>
|
|
<tr class="separator:afb683b1f868478d1797b1c19bb5d6375"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aac03a57ce63373432a8b8ef9f0c187b7"><td class="memItemLeft" align="right" valign="top"><a id="aac03a57ce63373432a8b8ef9f0c187b7"></a>
|
|
void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcereal_1_1JSONOutputArchive.html#aac03a57ce63373432a8b8ef9f0c187b7">saveValue</a> (double d)</td></tr>
|
|
<tr class="memdesc:aac03a57ce63373432a8b8ef9f0c187b7"><td class="mdescLeft"> </td><td class="mdescRight">Saves a double to the current node. <br /></td></tr>
|
|
<tr class="separator:aac03a57ce63373432a8b8ef9f0c187b7"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aebe0984ef09998ee687217d74e4d6bcd"><td class="memItemLeft" align="right" valign="top"><a id="aebe0984ef09998ee687217d74e4d6bcd"></a>
|
|
void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcereal_1_1JSONOutputArchive.html#aebe0984ef09998ee687217d74e4d6bcd">saveValue</a> (std::string const &s)</td></tr>
|
|
<tr class="memdesc:aebe0984ef09998ee687217d74e4d6bcd"><td class="mdescLeft"> </td><td class="mdescRight">Saves a string to the current node. <br /></td></tr>
|
|
<tr class="separator:aebe0984ef09998ee687217d74e4d6bcd"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ad08dc226626239c6e22bf2747a7cf275"><td class="memItemLeft" align="right" valign="top"><a id="ad08dc226626239c6e22bf2747a7cf275"></a>
|
|
void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcereal_1_1JSONOutputArchive.html#ad08dc226626239c6e22bf2747a7cf275">saveValue</a> (char const *s)</td></tr>
|
|
<tr class="memdesc:ad08dc226626239c6e22bf2747a7cf275"><td class="mdescLeft"> </td><td class="mdescRight">Saves a const char * to the current node. <br /></td></tr>
|
|
<tr class="separator:ad08dc226626239c6e22bf2747a7cf275"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a831d72780e7c42900421a00c372bcf7c"><td class="memItemLeft" align="right" valign="top"><a id="a831d72780e7c42900421a00c372bcf7c"></a>
|
|
void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcereal_1_1JSONOutputArchive.html#a831d72780e7c42900421a00c372bcf7c">saveValue</a> (std::nullptr_t)</td></tr>
|
|
<tr class="memdesc:a831d72780e7c42900421a00c372bcf7c"><td class="mdescLeft"> </td><td class="mdescRight">Saves a nullptr to the current node. <br /></td></tr>
|
|
<tr class="separator:a831d72780e7c42900421a00c372bcf7c"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a60c9ae47585eb6eb0207ebf3c1f8a345"><td class="memTemplParams" colspan="2"><a id="a60c9ae47585eb6eb0207ebf3c1f8a345"></a>
|
|
template<class T , traits::EnableIf< std::is_same< T, long >::value, !std::is_same< T, int >::value, !std::is_same< T, std::int64_t >::value > = traits::sfinae> </td></tr>
|
|
<tr class="memitem:a60c9ae47585eb6eb0207ebf3c1f8a345"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classcereal_1_1JSONOutputArchive.html#a60c9ae47585eb6eb0207ebf3c1f8a345">saveValue</a> (T t)</td></tr>
|
|
<tr class="memdesc:a60c9ae47585eb6eb0207ebf3c1f8a345"><td class="mdescLeft"> </td><td class="mdescRight">Serialize a long if it would not be caught otherwise. <br /></td></tr>
|
|
<tr class="separator:a60c9ae47585eb6eb0207ebf3c1f8a345"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a60c9ae47585eb6eb0207ebf3c1f8a345"><td class="memTemplParams" colspan="2"><a id="a60c9ae47585eb6eb0207ebf3c1f8a345"></a>
|
|
template<class T , traits::EnableIf< std::is_same< T, unsigned long >::value, !std::is_same< T, unsigned >::value, !std::is_same< T, std::uint64_t >::value > = traits::sfinae> </td></tr>
|
|
<tr class="memitem:a60c9ae47585eb6eb0207ebf3c1f8a345"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classcereal_1_1JSONOutputArchive.html#a60c9ae47585eb6eb0207ebf3c1f8a345">saveValue</a> (T t)</td></tr>
|
|
<tr class="memdesc:a60c9ae47585eb6eb0207ebf3c1f8a345"><td class="mdescLeft"> </td><td class="mdescRight">Serialize an unsigned long if it would not be caught otherwise. <br /></td></tr>
|
|
<tr class="separator:a60c9ae47585eb6eb0207ebf3c1f8a345"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ac3918206b9255e0b523ace06e16a02ea"><td class="memTemplParams" colspan="2">template<class T , traits::EnableIf< std::is_arithmetic< T >::value, !std::is_same< T, long >::value, !std::is_same< T, unsigned long >::value, !std::is_same< T, std::int64_t >::value, !std::is_same< T, std::uint64_t >::value,(sizeof(T) >=sizeof(long double)||sizeof(T) >=sizeof(long long))> = traits::sfinae> </td></tr>
|
|
<tr class="memitem:ac3918206b9255e0b523ace06e16a02ea"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classcereal_1_1JSONOutputArchive.html#ac3918206b9255e0b523ace06e16a02ea">saveValue</a> (T const &t)</td></tr>
|
|
<tr class="memdesc:ac3918206b9255e0b523ace06e16a02ea"><td class="mdescLeft"> </td><td class="mdescRight">Save exotic arithmetic as strings to current node. <a href="classcereal_1_1JSONOutputArchive.html#ac3918206b9255e0b523ace06e16a02ea">More...</a><br /></td></tr>
|
|
<tr class="separator:ac3918206b9255e0b523ace06e16a02ea"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a5014cca0214e98b2d93be821a9e1ce36"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcereal_1_1JSONOutputArchive.html#a5014cca0214e98b2d93be821a9e1ce36">writeName</a> ()</td></tr>
|
|
<tr class="memdesc:a5014cca0214e98b2d93be821a9e1ce36"><td class="mdescLeft"> </td><td class="mdescRight">Write the name of the upcoming node and prepare object/array state. <a href="classcereal_1_1JSONOutputArchive.html#a5014cca0214e98b2d93be821a9e1ce36">More...</a><br /></td></tr>
|
|
<tr class="separator:a5014cca0214e98b2d93be821a9e1ce36"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a50fcaa40404675ec6559fd0a191a0627"><td class="memItemLeft" align="right" valign="top"><a id="a50fcaa40404675ec6559fd0a191a0627"></a>
|
|
void </td><td class="memItemRight" valign="bottom"><a class="el" href="classcereal_1_1JSONOutputArchive.html#a50fcaa40404675ec6559fd0a191a0627">makeArray</a> ()</td></tr>
|
|
<tr class="memdesc:a50fcaa40404675ec6559fd0a191a0627"><td class="mdescLeft"> </td><td class="mdescRight">Designates that the current node should be output as an array, not an object. <br /></td></tr>
|
|
<tr class="separator:a50fcaa40404675ec6559fd0a191a0627"><td class="memSeparator" colspan="2"> </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="-"/> Public Types inherited from <a class="el" href="classcereal_1_1OutputArchive.html">cereal::OutputArchive< JSONOutputArchive ></a></td></tr>
|
|
<tr class="memitem:a8f3be4fe8a965bbce4eb1cf36068e611 inherit pub_types_classcereal_1_1OutputArchive"><td class="memItemLeft" align="right" valign="top">using </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"> </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"> </td></tr>
|
|
<tr class="memitem:ad48175118ea9b931ef42a74f8efd0389 inherit pub_types_classcereal_1_1OutputArchive"><td class="memItemLeft" align="right" valign="top">using </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"> </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"> </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 JSON. </p>
|
|
<p>This archive uses RapidJSON to build serialize data to JSON.</p>
|
|
<p>JSON archives provides a human readable output but at decreased performance (both in time and space) compared to binary archives.</p>
|
|
<p>JSON archives are only guaranteed to finish flushing their contents upon destruction and should thus be used in an RAII fashion.</p>
|
|
<p>JSON 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 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>JSON 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 cause the archive to output the data as a JSON array (e.g. marked by [] instead of {}), which indicates that the container is variable sized and may be edited. </p>
|
|
</div><h2 class="groupheader">Constructor & Destructor Documentation</h2>
|
|
<a id="a87fef1f545417ca857e00f1af5a70701"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a87fef1f545417ca857e00f1af5a70701">◆ </a></span>JSONOutputArchive()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">cereal::JSONOutputArchive::JSONOutputArchive </td>
|
|
<td>(</td>
|
|
<td class="paramtype">std::ostream & </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_1JSONOutputArchive_1_1Options.html">Options</a> const & </td>
|
|
<td class="paramname"><em>options</em> = <code><a class="el" href="classcereal_1_1JSONOutputArchive_1_1Options.html#a82ac8216b731ffc3669c9a16e18efc86">Options::Default</a>()</code> </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. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">stream</td><td>The stream to output to. </td></tr>
|
|
<tr><td class="paramname">options</td><td>The JSON specific options to use. See the <a class="el" href="classcereal_1_1JSONOutputArchive_1_1Options.html" title="A class containing various advanced options for the JSON 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="a1833e8351413e686130e7794c712639b"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a1833e8351413e686130e7794c712639b">◆ </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::JSONOutputArchive::saveBinaryValue </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const void * </td>
|
|
<td class="paramname"><em>data</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">size_t </td>
|
|
<td class="paramname"><em>size</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const char * </td>
|
|
<td class="paramname"><em>name</em> = <code>nullptr</code> </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 will create a new node, optionally named, and insert a value that consists of the data encoded as a base64 string </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ac3918206b9255e0b523ace06e16a02ea"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ac3918206b9255e0b523ace06e16a02ea">◆ </a></span>saveValue()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<class T , traits::EnableIf< std::is_arithmetic< T >::value, !std::is_same< T, long >::value, !std::is_same< T, unsigned long >::value, !std::is_same< T, std::int64_t >::value, !std::is_same< T, std::uint64_t >::value,(sizeof(T) >=sizeof(long double)||sizeof(T) >=sizeof(long long))> = traits::sfinae> </div>
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void cereal::JSONOutputArchive::saveValue </td>
|
|
<td>(</td>
|
|
<td class="paramtype">T const & </td>
|
|
<td class="paramname"><em>t</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>Save exotic arithmetic as strings to current node. </p>
|
|
<p>Handles long long (if distinct from other types), unsigned long (if distinct), and long double </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="acae7982ee23cacf07cb6c4326818e6b8"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#acae7982ee23cacf07cb6c4326818e6b8">◆ </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::JSONOutputArchive::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>Starts a new node in the JSON output. </p>
|
|
<p>The node can optionally be given a name by calling setNextName prior to creating the node</p>
|
|
<p>Nodes only need to be started for types that are themselves objects or arrays </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a5014cca0214e98b2d93be821a9e1ce36"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a5014cca0214e98b2d93be821a9e1ce36">◆ </a></span>writeName()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void cereal::JSONOutputArchive::writeName </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>Write the name of the upcoming node and prepare object/array state. </p>
|
|
<p>Since writeName is called for every value that is output, regardless of whether it has a name or not, it is the place where we will do a deferred check of our node state and decide whether we are in an array or an object.</p>
|
|
<p>The general workflow of saving to the JSON archive is:</p>
|
|
<ol type="1">
|
|
<li>(optional) Set the name for the next node to be created, usually done by an NVP</li>
|
|
<li>Start the node</li>
|
|
<li>(if there is data to save) Write the name of the node (this function)</li>
|
|
<li>(if there is data to save) Save the data (with saveValue)</li>
|
|
<li>Finish the node </li>
|
|
</ol>
|
|
|
|
</div>
|
|
</div>
|
|
<hr/>The documentation for this class was generated from the following file:<ul>
|
|
<li><a class="el" href="json_8hpp_source.html">json.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  <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>
|