72 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			72 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
								 | 
							
								/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
							 | 
						||
| 
								 | 
							
								// archive_serializer_map.ipp:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com .
							 | 
						||
| 
								 | 
							
								// Distributed under the Boost Software License, Version 1.0. (See
							 | 
						||
| 
								 | 
							
								// accompanying file LICENSE_1_0.txt or copy at
							 | 
						||
| 
								 | 
							
								// http://www.boost.org/LICENSE_1_0.txt)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								//  See http://www.boost.org for updates, documentation, and revision history.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								//////////////////////////////////////////////////////////////////////
							 | 
						||
| 
								 | 
							
								// implementation of basic_text_iprimitive overrides for the combination
							 | 
						||
| 
								 | 
							
								// of template parameters used to implement a text_iprimitive
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include <boost/config.hpp>
							 | 
						||
| 
								 | 
							
								#include <boost/archive/detail/archive_serializer_map.hpp>
							 | 
						||
| 
								 | 
							
								#include <boost/archive/detail/basic_serializer_map.hpp>
							 | 
						||
| 
								 | 
							
								#include <boost/serialization/singleton.hpp>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								namespace boost {
							 | 
						||
| 
								 | 
							
								namespace archive {
							 | 
						||
| 
								 | 
							
								namespace detail {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifdef BOOST_MSVC
							 | 
						||
| 
								 | 
							
								#  pragma warning(push)
							 | 
						||
| 
								 | 
							
								#  pragma warning(disable : 4511 4512)
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								namespace extra_detail { // anon
							 | 
						||
| 
								 | 
							
								    template<class Archive>
							 | 
						||
| 
								 | 
							
								    class map : public basic_serializer_map 
							 | 
						||
| 
								 | 
							
								    {};
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifdef BOOST_MSVC
							 | 
						||
| 
								 | 
							
								#  pragma warning(pop)
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template<class Archive>
							 | 
						||
| 
								 | 
							
								BOOST_ARCHIVE_OR_WARCHIVE_DECL bool
							 | 
						||
| 
								 | 
							
								archive_serializer_map<Archive>::insert(const basic_serializer * bs){
							 | 
						||
| 
								 | 
							
								    return boost::serialization::singleton<
							 | 
						||
| 
								 | 
							
								        extra_detail::map<Archive>
							 | 
						||
| 
								 | 
							
								    >::get_mutable_instance().insert(bs);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template<class Archive>
							 | 
						||
| 
								 | 
							
								BOOST_ARCHIVE_OR_WARCHIVE_DECL void
							 | 
						||
| 
								 | 
							
								archive_serializer_map<Archive>::erase(const basic_serializer * bs){
							 | 
						||
| 
								 | 
							
								    if(boost::serialization::singleton<
							 | 
						||
| 
								 | 
							
								        extra_detail::map<Archive>
							 | 
						||
| 
								 | 
							
								    >::is_destroyed())
							 | 
						||
| 
								 | 
							
								        return;
							 | 
						||
| 
								 | 
							
								    boost::serialization::singleton<
							 | 
						||
| 
								 | 
							
								        extra_detail::map<Archive>
							 | 
						||
| 
								 | 
							
								    >::get_mutable_instance().erase(bs);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template<class Archive>
							 | 
						||
| 
								 | 
							
								BOOST_ARCHIVE_OR_WARCHIVE_DECL const basic_serializer *
							 | 
						||
| 
								 | 
							
								archive_serializer_map<Archive>::find(
							 | 
						||
| 
								 | 
							
								    const boost::serialization::extended_type_info & eti
							 | 
						||
| 
								 | 
							
								) {
							 | 
						||
| 
								 | 
							
								    return boost::serialization::singleton<
							 | 
						||
| 
								 | 
							
								        extra_detail::map<Archive>
							 | 
						||
| 
								 | 
							
								    >::get_const_instance().find(eti);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								} // namespace detail
							 | 
						||
| 
								 | 
							
								} // namespace archive
							 | 
						||
| 
								 | 
							
								} // namespace boost
							 |