Text Archive Class Diagram
This diagram shows the relationship between the various classes that implement loading (input serialization) for text files. The hierachy and organization is similar 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 implement the library and should never change. They are in
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_impl -> | \ | | \ | | \_____________________________________ polymorphic_iarchive -> | \ / | \ / | \ / text_iarchive -> polymorphic_iarchive_route<text_iarchive_impl<text_iarchive> > -> | | | polymorphic_text_iarchive ->
polymorphic_iarchiveas well as for archive implementations.
basic_iarchiveand the template interface used by archive class implementations.
text_iarchive_impl<text_iarchive>. We can't use
typedefcan't refer to it self in its definition. This is the class name that is used to serialize to a text archive.
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.
This class implements the
polymorphic_iarchive in terms of a specific
concrete class. Virtual function calls are routed to the implementing class. In this example,
that implementing class would be text_iarchive_impl.
© 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)