QxOrm
1.5.0
C++ Object Relational Mapping library
|
Provides an archive to create portable binary files. More...
#include <ostream>
#include <boost/version.hpp>
#include <boost/utility/enable_if.hpp>
#include <boost/archive/basic_binary_oprimitive.hpp>
#include <boost/archive/basic_binary_oarchive.hpp>
#include <boost/integer/endian.hpp>
#include <boost/math/fpclassify.hpp>
#include <boost/type_traits/is_integral.hpp>
#include <boost/type_traits/is_signed.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_oarchive |
Portable binary output archive using little endian format. More... | |
struct | eos::portable_oarchive::dummy< int > |
Namespaces | |
namespace | eos |
namespace | boost |
namespace | boost::archive |
Defines | |
#define | BOOST_ARCHIVE_CUSTOM_OARCHIVE_TYPES eos::portable_oarchive |
#define | _QX_BOOST_ARCHIVE_SERIALIZER_IMPL_DEFINED_ |
Typedefs | |
typedef boost::archive::basic_binary_oprimitive < portable_oarchive, std::ostream > | eos::portable_oprimitive |
Provides an archive to create 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_oarchive.hpp.
#define _QX_BOOST_ARCHIVE_SERIALIZER_IMPL_DEFINED_ |
Definition at line 431 of file portable_oarchive.hpp.
#define BOOST_ARCHIVE_CUSTOM_OARCHIVE_TYPES eos::portable_oarchive |
Definition at line 419 of file portable_oarchive.hpp.