|
SerializationArchive Class Diagram |
basic_iarchive ->
|
|
| interface_iarchive<text_iarchive> ->
| /
| /
| _________/
| /
| /
| /
common_iarchive<text_iarchive> ->
|
|
basic_text_iarchive<text_iarchive> ->
|
|
| basic_text_iprimitive<basic_istream> ->
| /
| /
| _________/ interface_iarchive<polymorphic_iarchive> ->
| / |
| / |
| / |
text_iarchive_impl<text_iarchive> -> polymorphic_iarchive ->
| \ |
| \ |
| \_____________________________________ |
| \ /
| \ /
| \ /
text_iarchive -> polymorphic_iarchive_impl<text_iarchive_impl<text_iarchive> > ->
|
|
|
polymorphic_text_iarchive ->
This diagram shows the relationship between the various classes that implement loading (input
serialization) for text files. The hierachy and organization is identical for saving and for
other types of archives as well. In the diagram, classes written in blue
implement loading for a given archive type. (in this case its text archives).
Users include classes in red to load their data from a partcular
type of archive. Other classes whose names are in black implment the library and should
never change. They are in namespace boost::archive::detail
basic_iarchive
interface_iarchive<text_iarchive>
polymorphic_iarchive
as well as for archive implementations.
common_iarchive<text_iarchive>
basic_iarchive
and the template interface used by archive
class implementations.
basic_text_iarchive<text_iarchive>
basic_text_iprimitive<basic_istream>
text_iarchive_impl<text_iarchive>
text_iarchive
text_iarchive_impl<text_iarchive>
.
We can't use typedef
because a
typedef
can't refer to it self in its definition.
This is the class name that is used to serialize to a text archive.
interface_iarchive<polymorphic_iarchive>
common_iarchive
uses.
polymorphic_iarchive
load(T &t)
for all primitive types T. This is the class that is used to do pre-compile serialization of classes
for all archives present and future.
polymorphic_iarchive_impl<text_iarchive_impl<text_iarchive> >
This class implements the polymorphic_iarchive
in terms of a specific
concrete class. Virtual function calls are forwarded to the implementing class. In this example,
that impelenting class would be text_iarchive_impl.
polymorphic_text_iarchive
polymorphic_iarchive_impl<text_iarchive_impl<text_iarchive> >
© Copyright Robert Ramey 2002-2004. Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)