1 #ifndef BOOST_ARCHIVE_BASIC_POINTER_OSERIALIZER_HPP 2 #define BOOST_ARCHIVE_BASIC_POINTER_OSERIALIZER_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_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 namespace archive { 37 namespace detail { 38 39 class BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) basic_oarchive; 40 class BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) basic_oserializer; 41 42 class BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) basic_pointer_oserializer : 43 public basic_serializer 44 { 45 protected: 46 explicit basic_pointer_oserializer( 47 const boost::serialization::extended_type_info & type_ 48 ); 49 public: 50 // account for bogus gcc warning 51 #if defined(__GNUC__) 52 virtual 53 #endif 54 ~basic_pointer_oserializer(); 55 virtual const basic_oserializer & get_basic_serializer() const = 0; 56 virtual void save_object_ptr( 57 basic_oarchive & ar, 58 const void * x 59 ) const = 0; 60 }; 61 62 } // namespace detail 63 } // namespace archive 64 } // namespace boost 65 66 #ifdef BOOST_MSVC 67 #pragma warning(pop) 68 #endif 69 70 #include <boost/archive/detail/abi_suffix.hpp> // pops abi_suffix.hpp pragmas 71 72 #endif // BOOST_ARCHIVE_BASIC_POINTER_OSERIALIZER_HPP 73