Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion doc/acknowledgments.html
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
<h3><a href="http://www.boost.org"><img height="86" width="277" alt="C++ Boost" src="../../../boost.png" border="0"></a></h3>
</td>
<td valign="top">
<h1 align="center">Serialization</h1>
<h1 align="center"><a href="index.html">Serialization</a></h1>
<h2 align="center">Acknowledgments</h2>
</td>
</tr>
Expand Down
48 changes: 24 additions & 24 deletions doc/archive_reference.html
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
<h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../boost.png" border="0"></a></h3>
</td>
<td valign="top">
<h1 align="center">Serialization</h1>
<h1 align="center"><a href="index.html">Serialization</a></h1>
<h2 align="center">Archive Class Reference</h2>
</td>
</tr>
Expand Down Expand Up @@ -74,7 +74,7 @@ <h4>Minimum Requirements</h4>
This archive will compile and execute with any types which implement the
<a href="serialization.html"><strong>Serializable</strong></a> concept.
For an example see
<a href="../example/demo_trivial_archive.cpp" target="demo_trivial_archive">
<a href="../example/demo_trivial_archive.cpp">
<code style="white-space: normal">demo_trivial_archive.cpp</code></a>.
Of course this program won't produce any output as it is. But it provides
the starting point for a simple class which can be used to log formatted
Expand All @@ -90,16 +90,16 @@ <h3><a name="implementation">More Useful Archive Classes</a></h3>
<p>
Our archives have been factored into a tree of classes in order to minimize
repetition of code. This is shown in the accompanying
<a target="class_diagram" href="class_diagram.html">class diagram</a>.
<a href="class_diagram.html">class diagram</a>.

Any class which fulfills the following requirements will fit into
this hierarchy and implement all the features we require. Deriving from
the base class <a href="../../../boost/archive/detail/common_oarchive.hpp" target="common_oarchive_hpp">
the base class <a href="../../../boost/archive/detail/common_oarchive.hpp">
common_oarchive.hpp</a> provides all features we desire which
are missing from trivial_oarchive above.

<pre><code>
<a href="../../../boost/archive/detail/common_oarchive.hpp" target="common_oarchive_hpp">
<a href="../../../boost/archive/detail/common_oarchive.hpp">
#include &lt;cstddef&gt; // std::size_t
#include &lt;boost/archive/detail/common_oarchive.hpp&gt;
</a>
Expand Down Expand Up @@ -213,15 +213,15 @@ <h4>Types used by the serialization library</h4>
for these types.
<p>
These are defined in
<a href="../../../boost/archive/basic_archive.hpp" target="basic_archive_hpp"><code style="white-space: normal">basic_archive.hpp</code></a>.
<a href="../../../boost/archive/basic_archive.hpp"><code style="white-space: normal">basic_archive.hpp</code></a>.
All of these types have been assigned an
<a target="detail" href="traits.html#level">implementation level</a> of
<a href="traits.html#level">implementation level</a> of
<code style="white-space: normal">primitive</code> and are convertible to types such as int, unsigned int, etc.
so that they have default implementations. This is illustrated by
<a href="../../../boost/archive/basic_text_iarchive.hpp" target="basic_text_iarchive_hpp"><code style="white-space: normal">basic_text_iarchive.hpp</code></a>.
<a href="../../../boost/archive/basic_text_iarchive.hpp"><code style="white-space: normal">basic_text_iarchive.hpp</code></a>.
which relies upon the default. However, in some cases, overrides will have to be
explicitly provided for these types. For an example see
<a href="../../../boost/archive/basic_xml_iarchive.hpp" target="basic_xml_iarchive_hpp"><code style="white-space: normal">basic_xml_iarchive.hpp</code></a>.
<a href="../../../boost/archive/basic_xml_iarchive.hpp"><code style="white-space: normal">basic_xml_iarchive.hpp</code></a>.
<p>
In real practice, we probably won't be quite done.
One or more of the following issues may need to be addressed:
Expand All @@ -238,7 +238,7 @@ <h4>Types used by the serialization library</h4>
as a template parameter rather than simple classes.
Combined with the above, even more issues arise with non-conforming compilers.
</ul>
The attached <a target="class_diagram" href="class_diagram.html">class diagram</a>
The attached <a href="class_diagram.html">class diagram</a>
shows the relationships between classes used to implement the serialization library.
<p>
A close examination of the archives included with the library illustrate
Expand Down Expand Up @@ -349,46 +349,46 @@ <h4>Implementation</h4>
functions - no templates - that is equivalent to the standard templated one.

This is shown in the accompanying
<a target="class_diagram" href="class_diagram.html">class diagram</a>
<a href="class_diagram.html">class diagram</a>
<p>
The accompanying demo program in files

<a target=demo_polymorphic_cp href="../example/demo_polymorphic.cpp"><code style="white-space: normal">demo_polymorphic.cpp</code></a>,
<a target=demo_polymorphic_A_hpp href="../example/demo_polymorphic_A.hpp"><code style="white-space: normal">demo_polymorphic_A.hpp</code></a>, and
<a target=demo_polymorphic_A_cpp href="../example/demo_polymorphic_A.cpp"><code style="white-space: normal">demo_polymorphic_A</code></a>
<a href="../example/demo_polymorphic.cpp"><code style="white-space: normal">demo_polymorphic.cpp</code></a>,
<a href="../example/demo_polymorphic_A.hpp"><code style="white-space: normal">demo_polymorphic_A.hpp</code></a>, and
<a href="../example/demo_polymorphic_A.cpp"><code style="white-space: normal">demo_polymorphic_A</code></a>
show how polymorphic archives are to be used. Note the following:
<ul>
<li><a target=demo_polymorphic_A_hpp href="../example/demo_polymorphic_A.hpp"><code style="white-space: normal">demo_polymorphic_A.hpp</code></a> and
<a target=demo_polymorphic_A_cpp href="../example/demo_polymorphic_A.cpp"><code style="white-space: normal">demo_polymorphic_A.cpp</code></a>
<li><a href="../example/demo_polymorphic_A.hpp"><code style="white-space: normal">demo_polymorphic_A.hpp</code></a> and
<a href="../example/demo_polymorphic_A.cpp"><code style="white-space: normal">demo_polymorphic_A.cpp</code></a>
contain no templates and no reference to any specific archive implementation. That is, they will
only have to be compiled once for all archive implementations. This even applies to archives classes
created in the future.
<li>The main program <a target=demo_polymorphic_cp href="../example/demo_polymorphic.cpp"><code style="white-space: normal">demo_polymorphic.cpp</code></a>
<li>The main program <a href="../example/demo_polymorphic.cpp"><code style="white-space: normal">demo_polymorphic.cpp</code></a>
specifies a specific archive implementation.
</ul>
As can be seen in the
<a target="class_diagram" href="class_diagram.html">class diagram</a>
<a href="class_diagram.html">class diagram</a>
and the header files, this implementation is just a composition of the polymorphic
interface and the standard template driven implementation. This composition is
accomplished by the templates
<a target=polymorphic_iarchive_route_hpp href="../../../boost/archive/detail/polymorphic_iarchive_route.hpp"><code style="white-space: normal">polymorphic_iarchive_route.hpp</code></a>
<a href="../../../boost/archive/detail/polymorphic_iarchive_route.hpp"><code style="white-space: normal">polymorphic_iarchive_route.hpp</code></a>
and
<a target=polymorphic_oarchive_route_hpp href="../../../boost/archive/detail/polymorphic_oarchive_route.hpp"><code style="white-space: normal">polymorphic_oarchive_route.hpp</code></a>
<a href="../../../boost/archive/detail/polymorphic_oarchive_route.hpp"><code style="white-space: normal">polymorphic_oarchive_route.hpp</code></a>
which redirect calls to the polymorphic archives to the specific archive.
As these contain no code specific to the particular implementation archive, they can be used to create
a polymorphic archive implementation from any functioning templated archive implementation.
<p>
As a convenience, small header files have been included which contain
a <code style="white-space: normal">typedef</code> for a polymorphic implementation for each corresponding
templated one. For example, the headers
<a target=polymorphic_text_iarchive_hpp href="../../../boost/archive/polymorphic_text_iarchive.hpp"><code style="white-space: normal">polymorphic_text_iarchive.hpp</code></a>
<a href="../../../boost/archive/polymorphic_text_iarchive.hpp"><code style="white-space: normal">polymorphic_text_iarchive.hpp</code></a>
and
<a target=polymorphic_text_oarchive_hpp href="../../../boost/archive/polymorphic_text_oarchive.hpp"><code style="white-space: normal">polymorphic_text_oarchive.hpp</code></a>.
<a href="../../../boost/archive/polymorphic_text_oarchive.hpp"><code style="white-space: normal">polymorphic_text_oarchive.hpp</code></a>.
contain the <code style="white-space: normal">typedef</code> for the polymorphic implementation
of the standard text archive classes
<a target=text_iarchive_hpp href="../../../boost/archive/text_iarchive.hpp"><code style="white-space: normal">text_iarchive.hpp</code></a>
<a href="../../../boost/archive/text_iarchive.hpp"><code style="white-space: normal">text_iarchive.hpp</code></a>
and
<a target=text_oarchive_hpp href="../../../boost/archive/text_oarchive.hpp"><code style="white-space: normal">text_oarchive.hpp</code></a>
<a href="../../../boost/archive/text_oarchive.hpp"><code style="white-space: normal">text_oarchive.hpp</code></a>
respectively. All included polymorphic archives use the same naming scheme.

<h4>Usage</h4>
Expand Down
24 changes: 12 additions & 12 deletions doc/archives.html
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
<h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../boost.png" border="0"></a></h3>
</td>
<td valign="top">
<h1 align="center">Serialization</h1>
<h1 align="center"><a href="index.html">Serialization</a></h1>
<h2 align="center">Archive Concepts</h2>
</td>
</tr>
Expand Down Expand Up @@ -99,7 +99,7 @@ <h4>Valid Expressions</h4>
<a href="special.html#derivedpointers">Special Considerations - Derived Pointers</a>.
The second syntax is included to permit this function to be called on non-conforming
compilers when <code style="white-space: normal">sa</code> is a template argument.
For more information, see <a target="detail" href="implementation.html#tempatesyntax">Template Invocation syntax</a>
For more information, see <a href="implementation.html#tempatesyntax">Template Invocation syntax</a>
</dd>
<dt><h4><code>
sa.get_library_version()
Expand Down Expand Up @@ -177,7 +177,7 @@ <h4>Valid Expressions</h4>
<a href="special.html#derivedpointers">Special Considerations - Derived Pointers</a>.
The second syntax is included to permit this function to be called on non-conforming
compilers when <code style="white-space: normal">la</code> is a template argument.
For more information, see <a target="detail" href="implementation.html#tempatesyntax">Template Invocation syntax</a>
For more information, see <a href="implementation.html#tempatesyntax">Template Invocation syntax</a>
</dd>
<dt><h4><code>
la.get_library_version()
Expand Down Expand Up @@ -265,24 +265,24 @@ <h3><a name="archive_models">Archive Models</a></h3>
included in the code module containing the serialization code.
<pre><code>
// a portable text archive</a>
<a href="../../../boost/archive/text_oarchive.hpp" target="text_oarchive_cpp">boost::archive::text_oarchive</a> // saving
<a href="../../../boost/archive/text_iarchive.hpp" target="text_iarchive_cpp">boost::archive::text_iarchive</a> // loading
<a href="../../../boost/archive/text_oarchive.hpp">boost::archive::text_oarchive</a> // saving
<a href="../../../boost/archive/text_iarchive.hpp">boost::archive::text_iarchive</a> // loading

// a portable text archive using a wide character stream</a>
<a href="../../../boost/archive/text_woarchive.hpp">boost::archive::text_woarchive</a> // saving
<a href="../../../boost/archive/text_wiarchive.hpp">boost::archive::text_wiarchive</a> // loading

// a portable XML archive</a>
<a href="../../../boost/archive/xml_oarchive.hpp" target="xml_oarchive_cpp">boost::archive::xml_oarchive</a> // saving
<a href="../../../boost/archive/xml_iarchive.hpp" target="xml_iarchive_cpp">boost::archive::xml_iarchive</a> // loading
<a href="../../../boost/archive/xml_oarchive.hpp">boost::archive::xml_oarchive</a> // saving
<a href="../../../boost/archive/xml_iarchive.hpp">boost::archive::xml_iarchive</a> // loading

// a portable XML archive which uses wide characters - use for utf-8 output</a>
<a href="../../../boost/archive/xml_woarchive.hpp" target="xml_woarchive_cpp">boost::archive::xml_woarchive</a> // saving
<a href="../../../boost/archive/xml_wiarchive.hpp" target="xml_wiarchive_cpp">boost::archive::xml_wiarchive</a> // loading
<a href="../../../boost/archive/xml_woarchive.hpp">boost::archive::xml_woarchive</a> // saving
<a href="../../../boost/archive/xml_wiarchive.hpp">boost::archive::xml_wiarchive</a> // loading

// a non-portable native binary archive</a>
<a href="../../../boost/archive/binary_oarchive.hpp" target="binary_oarchive_cpp">boost::archive::binary_oarchive</a> // saving
<a href="../../../boost/archive/binary_iarchive.hpp" target="binary_iarchive_cpp">boost::archive::binary_iarchive</a> // loading
<a href="../../../boost/archive/binary_oarchive.hpp">boost::archive::binary_oarchive</a> // saving
<a href="../../../boost/archive/binary_iarchive.hpp">boost::archive::binary_iarchive</a> // loading

<!--
// a non-portable native binary archive which use wide character streams
Expand Down Expand Up @@ -428,7 +428,7 @@ <h3><a name="archive_models">Archive Models</a></h3>

<h3><a name="exceptions">Exceptions</h3>
All of the archive classes included may throw exceptions. The list of exceptions that might
be thrown can be found in section <a target="detail" href="exceptions.html">Archive Exceptions</a>
be thrown can be found in section <a href="exceptions.html">Archive Exceptions</a>
of this documentation.

<h3><a name="charactersets">Character Sets</h3>
Expand Down
2 changes: 1 addition & 1 deletion doc/bibliography.html
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
<h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../boost.png" border="0"></a></h3>
</td>
<td valign="top">
<h1 align="center">Serialization</h1>
<h1 align="center"><a href="index.html">Serialization</a></h1>
<h2 align="center">Bibliography</h2>
</td>
</tr>
Expand Down
2 changes: 1 addition & 1 deletion doc/class_diagram.html
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
<h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../boost.png" border="0"></a></h3>
</td>
<td valign="top">
<h1 align="center">Serialization</h1>
<h1 align="center"><a href="index.html">Serialization</a></h1>
<h2 align="center">Text Archive Class Diagram</h2>
</td>
</tr>
Expand Down
Loading