1
#ifndef BOOST_ARCHIVE_DETAIL_BASIC_ISERIALIZER_HPP
2
#define BOOST_ARCHIVE_DETAIL_BASIC_ISERIALIZER_HPP
4
// MS compatible compilers support #pragma once
5
#if defined(_MSC_VER) && (_MSC_VER >= 1020)
9
/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
10
// basic_iserializer.hpp: extenstion of type_info required for serialization.
12
// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com .
13
// Use, modification and distribution is subject to the Boost Software
14
// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
15
// http://www.boost.org/LICENSE_1_0.txt)
17
// See http://www.boost.org for updates, documentation, and revision history.
19
#include <cstdlib> // NULL
20
#include <boost/config.hpp>
22
#include <boost/archive/detail/decl.hpp>
23
#include <boost/archive/detail/basic_serializer.hpp>
24
#include <boost/archive/detail/auto_link_archive.hpp>
25
#include <boost/archive/detail/abi_prefix.hpp> // must be the last header
29
namespace serialization {
30
class extended_type_info;
31
} // namespace serialization
33
// forward declarations
37
class BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) basic_iarchive;
38
class BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) basic_pointer_iserializer;
40
class BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) basic_iserializer :
41
public basic_serializer
44
basic_pointer_iserializer *m_bpis;
46
explicit basic_iserializer(
47
const boost::serialization::extended_type_info & type
49
// account for bogus gcc warning
55
bool serialized_as_pointer() const {
56
return m_bpis != NULL;
58
void set_bpis(basic_pointer_iserializer *bpis){
61
const basic_pointer_iserializer * get_bpis_ptr() const {
64
virtual void load_object_data(
67
const unsigned int file_version
69
// returns true if class_info should be saved
70
virtual bool class_info() const = 0 ;
71
// returns true if objects should be tracked
72
virtual bool tracking(const unsigned int) const = 0 ;
73
// returns class version
74
virtual unsigned int version() const = 0 ;
75
// returns true if this class is polymorphic
76
virtual bool is_polymorphic() const = 0;
77
virtual void destroy(/*const*/ void *address) const = 0 ;
81
} // namespace archive
84
#include <boost/archive/detail/abi_suffix.hpp> // pops abi_suffix.hpp pragmas
86
#endif // BOOST_ARCHIVE_DETAIL_BASIC_ISERIALIZER_HPP