1 #ifndef BOOST_ARCHIVE_BASIC_POINTER_ISERIALIZER_HPP 2 #define BOOST_ARCHIVE_BASIC_POINTER_ISERIALIZER_HPP 3 4 // MS compatible compilers support #pragma once 5 #if defined(_MSC_VER) 6 # pragma once 7 #endif 8 9 /////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 10 // basic_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 #include <boost/config.hpp> 20 #include <boost/noncopyable.hpp> 21 #include <boost/archive/detail/auto_link_archive.hpp> 22 #include <boost/archive/detail/basic_serializer.hpp> 23 24 #include <boost/archive/detail/abi_prefix.hpp> // must be the last header 25 26 #ifdef BOOST_MSVC 27 # pragma warning(push) 28 # pragma warning(disable : 4511 4512) 29 #endif 30 31 namespace boost { 32 namespace serialization { 33 class extended_type_info; 34 } // namespace serialization 35 36 // forward declarations 37 namespace archive { 38 namespace detail { 39 40 class basic_iarchive; 41 class basic_iserializer; 42 43 class BOOST_SYMBOL_VISIBLE basic_pointer_iserializer 44 : public basic_serializer { 45 protected: 46 explicit BOOST_ARCHIVE_DECL basic_pointer_iserializer( 47 const boost::serialization::extended_type_info & type_ 48 ); 49 virtual BOOST_ARCHIVE_DECL ~basic_pointer_iserializer(); 50 public: 51 virtual void * heap_allocation() const = 0; 52 virtual const basic_iserializer & get_basic_serializer() const = 0; 53 virtual void load_object_ptr( 54 basic_iarchive & ar, 55 void * x, 56 const unsigned int file_version 57 ) const = 0; 58 }; 59 60 } // namespace detail 61 } // namespace archive 62 } // namespace boost 63 64 #ifdef BOOST_MSVC 65 #pragma warning(pop) 66 #endif 67 68 #include <boost/archive/detail/abi_suffix.hpp> // pops abi_suffix.hpp pragmas 69 70 #endif // BOOST_ARCHIVE_BASIC_POINTER_ISERIALIZER_HPP 71