Mercurial > hg > vamp-build-and-test
comparison DEPENDENCIES/generic/include/boost/archive/detail/basic_iarchive.hpp @ 16:2665513ce2d3
Add boost headers
author | Chris Cannam |
---|---|
date | Tue, 05 Aug 2014 11:11:38 +0100 |
parents | |
children | c530137014c0 |
comparison
equal
deleted
inserted
replaced
15:663ca0da4350 | 16:2665513ce2d3 |
---|---|
1 #ifndef BOOST_ARCHIVE_DETAIL_BASIC_IARCHIVE_HPP | |
2 #define BOOST_ARCHIVE_DETAIL_BASIC_IARCHIVE_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 // basic_iarchive.hpp: | |
11 | |
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) | |
16 | |
17 // See http://www.boost.org for updates, documentation, and revision history. | |
18 | |
19 // can't use this - much as I'd like to as borland doesn't support it | |
20 // #include <boost/scoped_ptr.hpp> | |
21 | |
22 #include <boost/config.hpp> | |
23 #include <boost/noncopyable.hpp> | |
24 | |
25 #include <boost/type_traits/broken_compiler_spec.hpp> | |
26 #include <boost/serialization/tracking_enum.hpp> | |
27 #include <boost/archive/basic_archive.hpp> | |
28 #include <boost/archive/detail/decl.hpp> | |
29 #include <boost/archive/detail/abi_prefix.hpp> // must be the last header | |
30 | |
31 namespace boost { | |
32 namespace serialization { | |
33 class extended_type_info; | |
34 } // namespace serialization | |
35 | |
36 namespace archive { | |
37 namespace detail { | |
38 | |
39 class basic_iarchive_impl; | |
40 class BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) basic_iserializer; | |
41 class BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) basic_pointer_iserializer; | |
42 ////////////////////////////////////////////////////////////////////// | |
43 // class basic_iarchive - read serialized objects from a input stream | |
44 class BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) basic_iarchive : | |
45 private boost::noncopyable | |
46 { | |
47 friend class basic_iarchive_impl; | |
48 // hide implementation of this class to minimize header conclusion | |
49 // in client code. I couldn't used scoped pointer with borland | |
50 // boost::scoped_ptr<basic_iarchive_impl> pimpl; | |
51 basic_iarchive_impl * pimpl; | |
52 | |
53 virtual void vload(version_type &t) = 0; | |
54 virtual void vload(object_id_type &t) = 0; | |
55 virtual void vload(class_id_type &t) = 0; | |
56 virtual void vload(class_id_optional_type &t) = 0; | |
57 virtual void vload(class_name_type &t) = 0; | |
58 virtual void vload(tracking_type &t) = 0; | |
59 protected: | |
60 basic_iarchive(unsigned int flags); | |
61 // account for bogus gcc warning | |
62 #if defined(__GNUC__) | |
63 virtual | |
64 #endif | |
65 ~basic_iarchive(); | |
66 public: | |
67 // note: NOT part of the public API. | |
68 void next_object_pointer(void *t); | |
69 void register_basic_serializer( | |
70 const basic_iserializer & bis | |
71 ); | |
72 void load_object( | |
73 void *t, | |
74 const basic_iserializer & bis | |
75 ); | |
76 const basic_pointer_iserializer * | |
77 load_pointer( | |
78 void * & t, | |
79 const basic_pointer_iserializer * bpis_ptr, | |
80 const basic_pointer_iserializer * (*finder)( | |
81 const boost::serialization::extended_type_info & eti | |
82 ) | |
83 | |
84 ); | |
85 // real public API starts here | |
86 void | |
87 set_library_version(library_version_type archive_library_version); | |
88 library_version_type | |
89 get_library_version() const; | |
90 unsigned int | |
91 get_flags() const; | |
92 void | |
93 reset_object_address(const void * new_address, const void * old_address); | |
94 void | |
95 delete_created_pointers(); | |
96 }; | |
97 | |
98 } // namespace detail | |
99 } // namespace archive | |
100 } // namespace boost | |
101 | |
102 // required by smart_cast for compilers not implementing | |
103 // partial template specialization | |
104 BOOST_TT_BROKEN_COMPILER_SPEC( | |
105 boost::archive::detail::basic_iarchive | |
106 ) | |
107 | |
108 #include <boost/archive/detail/abi_suffix.hpp> // pops abi_suffix.hpp pragmas | |
109 | |
110 #endif //BOOST_ARCHIVE_DETAIL_BASIC_IARCHIVE_HPP |