os/ossrv/ossrv_pub/boost_apis/boost/serialization/weak_ptr.hpp
author sl
Tue, 10 Jun 2014 14:32:02 +0200
changeset 1 260cb5ec6c19
permissions -rw-r--r--
Update contrib.
     1 #ifndef BOOST_SERIALIZATION_WEAK_PTR_HPP
     2 #define BOOST_SERIALIZATION_WEAK_PTR_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 // shared_ptr.hpp: serialization for boost shared pointer
    11 
    12 // (C) Copyright 2004 Robert Ramey and Martin Ecker
    13 // Use, modification and distribution is subject to the Boost Software
    14 // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
    15 // http://www.boost.org/LICENSE_1_0.txt)
    16 
    17 //  See http://www.boost.org for updates, documentation, and revision history.
    18 
    19 #include <boost/weak_ptr.hpp>
    20 #include <boost/serialization/shared_ptr.hpp>
    21 
    22 namespace boost {
    23 namespace serialization{
    24 
    25 template<class Archive, class T>
    26 inline void save(
    27     Archive & ar,
    28     const boost::weak_ptr<T> &t,
    29     const unsigned int /* file_version */
    30 ){
    31     const boost::shared_ptr<T> sp(t);
    32         ar << boost::serialization::make_nvp(NULL, sp);
    33 }
    34 
    35 template<class Archive, class T>
    36 inline void load(
    37     Archive & ar,
    38     boost::weak_ptr<T> &t,
    39     const unsigned int /* file_version */
    40 ){
    41     boost::shared_ptr<T> sp;
    42         ar >> boost::serialization::make_nvp(NULL, sp);
    43     t = sp;
    44 }
    45 
    46 template<class Archive, class T>
    47 inline void serialize(
    48     Archive & ar,
    49     boost::weak_ptr<T> &t,
    50     const unsigned int file_version
    51 ){
    52     boost::serialization::split_free(ar, t, file_version);
    53 }
    54 
    55 } // namespace serialization
    56 } // namespace boost
    57 
    58 #endif // BOOST_SERIALIZATION_WEAK_PTR_HPP