QxOrm
1.5.0
C++ Object Relational Mapping library
|
Provides an archive to read from portable binary files. More...
#include <istream>
#include <boost/version.hpp>
#include <boost/utility/enable_if.hpp>
#include <boost/archive/basic_binary_iprimitive.hpp>
#include <boost/archive/basic_binary_iarchive.hpp>
#include <boost/integer/endian.hpp>
#include <boost/math/fpclassify.hpp>
#include <boost/type_traits/is_integral.hpp>
#include <boost/type_traits/is_unsigned.hpp>
#include <boost/type_traits/is_arithmetic.hpp>
#include <boost/type_traits/is_floating_point.hpp>
#include "portable_archive_exception.hpp"
#include <boost/archive/impl/basic_binary_iarchive.ipp>
#include <boost/archive/impl/basic_binary_oarchive.ipp>
#include <boost/archive/impl/basic_binary_iprimitive.ipp>
#include <boost/archive/impl/basic_binary_oprimitive.ipp>
#include <boost/archive/impl/basic_text_oprimitive.ipp>
#include <boost/archive/impl/basic_text_iprimitive.ipp>
#include <boost/archive/impl/basic_text_oarchive.ipp>
#include <boost/archive/impl/basic_text_iarchive.ipp>
#include <boost/archive/impl/archive_pointer_iserializer.ipp>
#include <boost/archive/impl/archive_pointer_oserializer.ipp>
Go to the source code of this file.
Classes | |
class | eos::portable_iarchive |
Portable binary input archive using little endian format. More... | |
struct | eos::portable_iarchive::dummy< int > |
Namespaces | |
namespace | eos |
namespace | boost |
namespace | boost::archive |
Defines | |
#define | BOOST_ARCHIVE_CUSTOM_IARCHIVE_TYPES eos::portable_iarchive |
#define | _QX_BOOST_ARCHIVE_SERIALIZER_IMPL_DEFINED_ |
Typedefs | |
typedef boost::archive::basic_binary_iprimitive < portable_iarchive, std::istream > | eos::portable_iprimitive |
Provides an archive to read from portable binary files.
This pair of archives brings the advantages of binary streams to the cross platform boost::serialization user. While being almost as fast as the native binary archive it allows its files to be exchanged between cpu architectures using different byte order (endianness). Speaking of speed: in serializing numbers the (portable) binary approach is approximately ten times faster than the ascii implementation (that is inherently portable)!
Based on the portable archive example by Robert Ramey this implementation uses Beman Dawes endian library and fp_utilities from Johan Rade, both being in boost since 1.36. Prior to that you need to add them both (header only) to your boost directory before you're able to use the archives provided. Our archives have been tested successfully for boost versions 1.33 to 1.49!
Definition in file portable_iarchive.hpp.
#define _QX_BOOST_ARCHIVE_SERIALIZER_IMPL_DEFINED_ |
Definition at line 448 of file portable_iarchive.hpp.
#define BOOST_ARCHIVE_CUSTOM_IARCHIVE_TYPES eos::portable_iarchive |
Definition at line 436 of file portable_iarchive.hpp.