Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:28:27

0001 #ifndef  BOOST_SERIALIZER_MAP_HPP
0002 #define BOOST_SERIALIZER_MAP_HPP
0003 
0004 // MS compatible compilers support #pragma once
0005 #if defined(_MSC_VER)
0006 # pragma once
0007 #endif
0008 
0009 /////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
0010 // basic_serializer_map.hpp: extension of type_info required for serialization.
0011 
0012 // (C) Copyright 2002 Robert Ramey - http://www.rrsd.com .
0013 // Use, modification and distribution is subject to the Boost Software
0014 // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
0015 // http://www.boost.org/LICENSE_1_0.txt)
0016 
0017 //  See http://www.boost.org for updates, documentation, and revision history.
0018 
0019 #include <set>
0020 
0021 #include <boost/config.hpp>
0022 #include <boost/noncopyable.hpp>
0023 #include <boost/archive/detail/auto_link_archive.hpp>
0024 
0025 #include <boost/archive/detail/abi_prefix.hpp> // must be the last header
0026 
0027 namespace boost {
0028 namespace serialization {
0029     class extended_type_info;
0030 }
0031 
0032 namespace archive {
0033 namespace detail {
0034 
0035 class basic_serializer;
0036 
0037 class BOOST_SYMBOL_VISIBLE
0038 basic_serializer_map : public
0039     boost::noncopyable
0040 {
0041     struct type_info_pointer_compare
0042     {
0043         bool operator()(
0044             const basic_serializer * lhs, const basic_serializer * rhs
0045         ) const ;
0046     };
0047     typedef std::set<
0048         const basic_serializer *,
0049         type_info_pointer_compare
0050     > map_type;
0051     map_type m_map;
0052 public:
0053     BOOST_ARCHIVE_DECL bool insert(const basic_serializer * bs);
0054     BOOST_ARCHIVE_DECL void erase(const basic_serializer * bs);
0055     BOOST_ARCHIVE_DECL const basic_serializer * find(
0056         const boost::serialization::extended_type_info & type_
0057     ) const;
0058 private:
0059     // cw 8.3 requires this
0060     basic_serializer_map& operator=(basic_serializer_map const&);
0061 };
0062 
0063 } // namespace detail
0064 } // namespace archive
0065 } // namespace boost
0066 
0067 #include <boost/archive/detail/abi_suffix.hpp> // must be the last header
0068 
0069 #endif // BOOST_SERIALIZER_MAP_HPP