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
 | 
