29 #ifndef CO_DATAISTREAMARCHIVE_H
30 #define CO_DATAISTREAMARCHIVE_H
35 #pragma warning( push )
36 #pragma warning( disable: 4800 )
37 #include <boost/archive/basic_binary_iarchive.hpp>
38 #pragma warning( pop )
39 #include <boost/archive/detail/register_archive.hpp>
40 #include <boost/archive/shared_ptr_helper.hpp>
41 #include <boost/serialization/is_bitwise_serializable.hpp>
43 #include <boost/spirit/home/support/detail/endian.hpp>
44 #include <boost/spirit/home/support/detail/math/fpclassify.hpp>
46 #include <boost/type_traits/is_integral.hpp>
47 #include <boost/type_traits/is_unsigned.hpp>
48 #include <boost/type_traits/is_floating_point.hpp>
50 #include <boost/utility/enable_if.hpp>
56 :
public boost::archive::basic_binary_iarchive< DataIStreamArchive >
57 ,
public boost::archive::detail::shared_ptr_helper
59 typedef boost::archive::basic_binary_iarchive< DataIStreamArchive > Super;
66 CO_API
void load_binary(
void* data, std::size_t size );
69 template<
typename T >
70 void load_array( boost::serialization::array< T >& a,
unsigned int );
77 :
public boost::serialization::is_bitwise_serializable< T > {};
81 friend class boost::archive::load_access;
90 CO_API
void load(
bool& b );
93 template<
class C,
class T,
class A >
94 void load( std::basic_string< C, T, A >& s );
103 template<
typename T >
104 typename boost::enable_if< boost::is_integral<T> >::type load( T& t );
133 template<
typename T >
134 typename boost::enable_if< boost::is_floating_point<T> >::type load( T& t );
136 #if BOOST_VERSION >= 104400
139 CO_API
void load( boost::archive::library_version_type& version );
140 CO_API
void load( boost::archive::class_id_type& class_id );
141 CO_API
void load( boost::serialization::item_version_type& version );
142 CO_API
void load( boost::serialization::collection_size_type& version );
143 CO_API
void load( boost::archive::object_id_type& object_id );
144 CO_API
void load( boost::archive::version_type& version );
147 CO_API
signed char _loadSignedChar();
154 #include "dataIStreamArchive.ipp"
157 #include <boost/archive/impl/basic_binary_iarchive.ipp>
160 BOOST_SERIALIZATION_USE_ARRAY_OPTIMIZATION(co::DataIStreamArchive)
162 #endif //CO_DATAISTREAMARCHIVE_H
CO_API DataIStreamArchive(DataIStream &stream)
Construct a new deserialization archive.
A boost.serialization input archive reading from a co::DataIStream.
A std::istream-like input data stream for binary data.