source: NonGTP/Boost/boost/archive/detail/archive_pointer_oserializer.hpp @ 857

Revision 857, 2.2 KB checked in by igarcia, 18 years ago (diff)
Line 
1#ifndef BOOST_ARCHIVE_ARCHIVE_POINTER_OSERIALIZER_POINTER_HPP
2#define BOOST_ARCHIVE_ARCHIVE_POINTER_OSERIALIZER_POINTER_HPP
3
4// MS compatible compilers support #pragma once
5#if defined(_MSC_VER) && (_MSC_VER >= 1020)
6# pragma once
7#endif
8
9/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
10// archive_pointer_oserializer.hpp: extenstion of type_info required for
11// serialization.
12
13// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com .
14// Use, modification and distribution is subject to the Boost Software
15// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
16// http://www.boost.org/LICENSE_1_0.txt)
17
18//  See http://www.boost.org for updates, documentation, and revision history.
19
20#include <boost/config.hpp>
21#include <boost/archive/detail/basic_serializer.hpp>
22#include <boost/archive/detail/basic_pointer_oserializer.hpp>
23
24#include <boost/archive/detail/abi_prefix.hpp> // must be the last header
25
26namespace boost {
27
28namespace serialization {
29    class extended_type_info;
30} // namespace serialization
31
32namespace archive {
33namespace detail {
34
35template<class Archive>
36class archive_pointer_oserializer :
37    public basic_pointer_oserializer {
38protected:
39    explicit BOOST_ARCHIVE_OR_WARCHIVE_DECL(BOOST_PP_EMPTY())
40    archive_pointer_oserializer(
41        const boost::serialization::extended_type_info & eti
42    );
43    BOOST_ARCHIVE_OR_WARCHIVE_DECL(BOOST_PP_EMPTY())
44    // account for bogus gcc warning
45    #if defined(__GNUC__)
46    virtual
47    #endif
48    ~archive_pointer_oserializer();
49public:
50    // return the type_extended save pointer corresponding to a give
51    // type_info.  returns NULL, if there is no such instance. This
52    // would indicate that the no object of the specified type was saved
53    // any where in the code.
54    static
55    BOOST_ARCHIVE_OR_WARCHIVE_DECL(const basic_pointer_oserializer *)
56    find(
57        const boost::serialization::extended_type_info & eti
58    );
59};
60
61} // namespace detail
62} // namespace archive
63} // namespace boost
64
65#include <boost/archive/detail/abi_suffix.hpp> // pops abi_suffix.hpp pragmas
66
67#endif // BOOST_ARCHIVE_ARCHIVE_POINTER_OSERIALIZER_POINTER_HPP
Note: See TracBrowser for help on using the repository browser.