29 #ifndef CO_DATAISTREAMARCHIVE_H
30 #define CO_DATAISTREAMARCHIVE_H
35 #include <boost/version.hpp>
36 #pragma warning( push )
37 #pragma warning( disable: 4800 )
38 #include <boost/archive/basic_binary_iarchive.hpp>
39 #pragma warning( pop )
40 #include <boost/archive/detail/register_archive.hpp>
41 #if BOOST_VERSION < 105600
42 # include <boost/archive/shared_ptr_helper.hpp>
44 #include <boost/serialization/is_bitwise_serializable.hpp>
46 #include <boost/spirit/home/support/detail/endian.hpp>
47 #include <boost/spirit/home/support/detail/math/fpclassify.hpp>
49 #include <boost/type_traits/is_integral.hpp>
50 #include <boost/type_traits/is_unsigned.hpp>
51 #include <boost/type_traits/is_floating_point.hpp>
53 #include <boost/utility/enable_if.hpp>
59 :
public boost::archive::basic_binary_iarchive< DataIStreamArchive >
60 #if BOOST_VERSION < 105600
61 ,
public boost::archive::detail::shared_ptr_helper
64 typedef boost::archive::basic_binary_iarchive< DataIStreamArchive > Super;
71 CO_API
void load_binary(
void* data, std::size_t size );
74 template<
typename T >
75 void load_array( boost::serialization::array< T >& a,
unsigned int );
82 :
public boost::serialization::is_bitwise_serializable< T > {};
86 friend class boost::archive::load_access;
95 CO_API
void load(
bool& b );
98 template<
class C,
class T,
class A >
99 void load( std::basic_string< C, T, A >& s );
108 template<
typename T >
109 typename boost::enable_if< boost::is_integral<T> >::type load( T& t );
138 template<
typename T >
139 typename boost::enable_if< boost::is_floating_point<T> >::type load( T& t );
141 #if BOOST_VERSION >= 104400
144 CO_API
void load( boost::archive::library_version_type& version );
145 CO_API
void load( boost::archive::class_id_type& class_id );
146 CO_API
void load( boost::serialization::item_version_type& version );
147 CO_API
void load( boost::serialization::collection_size_type& version );
148 CO_API
void load( boost::archive::object_id_type& object_id );
149 CO_API
void load( boost::archive::version_type& version );
152 CO_API
signed char _loadSignedChar();
159 #include "dataIStreamArchive.ipp"
162 #include <boost/archive/impl/basic_binary_iarchive.ipp>
165 BOOST_SERIALIZATION_USE_ARRAY_OPTIMIZATION(co::DataIStreamArchive)
167 #endif //CO_DATAISTREAMARCHIVE_H
A boost.serialization input archive reading from a co::DataIStream.
Defines export visibility macros for Collage.
A std::istream-like input data stream for binary data.
CO_API DataIStreamArchive(DataIStream &stream)
Construct a new deserialization archive.