32#ifdef _QX_ENABLE_BOOST_SERIALIZATION
33#ifndef _QX_SERIALIZE_INCLUDE_H_
34#define _QX_SERIALIZE_INCLUDE_H_
44#pragma warning(disable:4189)
45#pragma warning(disable:4996)
48#if _QX_SERIALIZE_POLYMORPHIC
49#include <boost/archive/polymorphic_iarchive.hpp>
50#include <boost/archive/polymorphic_oarchive.hpp>
51#include <boost/archive/polymorphic_binary_iarchive.hpp>
52#include <boost/archive/polymorphic_binary_oarchive.hpp>
53#include <boost/archive/polymorphic_text_iarchive.hpp>
54#include <boost/archive/polymorphic_text_oarchive.hpp>
55#include <boost/archive/polymorphic_xml_iarchive.hpp>
56#include <boost/archive/polymorphic_xml_oarchive.hpp>
59#if _QX_SERIALIZE_BINARY
60#include <boost/archive/binary_iarchive.hpp>
61#include <boost/archive/binary_oarchive.hpp>
65#include <boost/archive/text_iarchive.hpp>
66#include <boost/archive/text_oarchive.hpp>
70#include <boost/archive/xml_iarchive.hpp>
71#include <boost/archive/xml_oarchive.hpp>
74#if _QX_SERIALIZE_WIDE_BINARY
75#include <boost/archive/binary_wiarchive.hpp>
76#include <boost/archive/binary_woarchive.hpp>
79#if _QX_SERIALIZE_WIDE_TEXT
80#include <boost/archive/text_wiarchive.hpp>
81#include <boost/archive/text_woarchive.hpp>
84#if _QX_SERIALIZE_WIDE_XML
85#include <boost/archive/xml_wiarchive.hpp>
86#include <boost/archive/xml_woarchive.hpp>
89#if _QX_SERIALIZE_PORTABLE_BINARY
94#ifndef _QX_BOOST_ARCHIVE_SERIALIZER_IMPL_DEFINED_
95#define _QX_BOOST_ARCHIVE_SERIALIZER_IMPL_DEFINED_
96#if (BOOST_VERSION > 103800)
97#include <boost/archive/impl/archive_serializer_map.ipp>
99#include <boost/archive/impl/archive_pointer_oserializer.ipp>
100#include <boost/archive/impl/archive_pointer_iserializer.ipp>
102#include <boost/archive/impl/basic_binary_oprimitive.ipp>
103#include <boost/archive/impl/basic_binary_iprimitive.ipp>
104#include <boost/archive/impl/basic_binary_oarchive.ipp>
105#include <boost/archive/impl/basic_binary_iarchive.ipp>
106#if _QX_SERIALIZE_TEXT
107#include <boost/archive/impl/basic_text_oprimitive.ipp>
108#include <boost/archive/impl/basic_text_iprimitive.ipp>
109#include <boost/archive/impl/basic_text_oarchive.ipp>
110#include <boost/archive/impl/basic_text_iarchive.ipp>
112#if (BOOST_VERSION > 103800)
114#if _QX_INCLUDE_BOOST_SERIALIZE_ARCHIVE_IMPL_IPP
115#if _QX_SERIALIZE_TEXT
116#include <boost/archive/impl/text_oarchive_impl.ipp>
117#include <boost/archive/impl/text_iarchive_impl.ipp>
120#include <boost/archive/impl/xml_oarchive_impl.ipp>
121#include <boost/archive/impl/xml_iarchive_impl.ipp>
123#if _QX_SERIALIZE_WIDE_TEXT
124#include <boost/archive/impl/text_woarchive_impl.ipp>
125#include <boost/archive/impl/text_wiarchive_impl.ipp>
127#if _QX_SERIALIZE_WIDE_XML
128#include <boost/archive/impl/xml_woarchive_impl.ipp>
129#include <boost/archive/impl/xml_wiarchive_impl.ipp>
139#ifndef QX_DEFAULT_ARCHIVE_INPUT
140#if _QX_SERIALIZE_POLYMORPHIC
141#define QX_DEFAULT_ARCHIVE_INPUT boost::archive::polymorphic_binary_iarchive
142#define QX_DEFAULT_ARCHIVE_OUTPUT boost::archive::polymorphic_binary_oarchive
143#elif _QX_SERIALIZE_BINARY
144#define QX_DEFAULT_ARCHIVE_INPUT boost::archive::binary_iarchive
145#define QX_DEFAULT_ARCHIVE_OUTPUT boost::archive::binary_oarchive
146#elif _QX_SERIALIZE_TEXT
147#define QX_DEFAULT_ARCHIVE_INPUT boost::archive::text_iarchive
148#define QX_DEFAULT_ARCHIVE_OUTPUT boost::archive::text_oarchive
149#elif _QX_SERIALIZE_XML
150#define QX_DEFAULT_ARCHIVE_INPUT boost::archive::xml_iarchive
151#define QX_DEFAULT_ARCHIVE_OUTPUT boost::archive::xml_oarchive
152#elif _QX_SERIALIZE_PORTABLE_BINARY
153#define QX_DEFAULT_ARCHIVE_INPUT eos::portable_iarchive
154#define QX_DEFAULT_ARCHIVE_OUTPUT eos::portable_oarchive
155#elif _QX_SERIALIZE_WIDE_BINARY
156#define QX_DEFAULT_ARCHIVE_INPUT boost::archive::binary_wiarchive
157#define QX_DEFAULT_ARCHIVE_OUTPUT boost::archive::binary_woarchive
158#elif _QX_SERIALIZE_WIDE_TEXT
159#define QX_DEFAULT_ARCHIVE_INPUT boost::archive::text_wiarchive
160#define QX_DEFAULT_ARCHIVE_OUTPUT boost::archive::text_woarchive
161#elif _QX_SERIALIZE_WIDE_XML
162#define QX_DEFAULT_ARCHIVE_INPUT boost::archive::xml_wiarchive
163#define QX_DEFAULT_ARCHIVE_OUTPUT boost::archive::xml_woarchive
167#ifndef QX_CLONE_STRING_STREAM
168#if _QX_SERIALIZE_POLYMORPHIC
169#define QX_CLONE_STRING_STREAM std::stringstream
170#define QX_CLONE_BINARY_OUTPUT_ARCHIVE boost::archive::polymorphic_binary_oarchive
171#define QX_CLONE_BINARY_INPUT_ARCHIVE boost::archive::polymorphic_binary_iarchive
172#elif _QX_SERIALIZE_WIDE_BINARY
173#define QX_CLONE_STRING_STREAM std::wstringstream
174#define QX_CLONE_BINARY_OUTPUT_ARCHIVE boost::archive::binary_woarchive
175#define QX_CLONE_BINARY_INPUT_ARCHIVE boost::archive::binary_wiarchive
176#elif _QX_SERIALIZE_BINARY
177#define QX_CLONE_STRING_STREAM std::stringstream
178#define QX_CLONE_BINARY_OUTPUT_ARCHIVE boost::archive::binary_oarchive
179#define QX_CLONE_BINARY_INPUT_ARCHIVE boost::archive::binary_iarchive
180#elif _QX_SERIALIZE_PORTABLE_BINARY
181#define QX_CLONE_STRING_STREAM std::stringstream
182#define QX_CLONE_BINARY_OUTPUT_ARCHIVE eos::portable_oarchive
183#define QX_CLONE_BINARY_INPUT_ARCHIVE eos::portable_iarchive
186#define QX_CLONE_NEED_BINARY_TO_INCREASE_PERFORMANCE "qx::clone() need binary archive for best performance"
187#if defined(_MSC_VER) || defined(__BORLANDC__) || defined(__DMC__)
188# pragma message (QX_CLONE_NEED_BINARY_TO_INCREASE_PERFORMANCE)
189#elif defined(__GNUC__) || defined(__HP_aCC) || defined(__SUNPRO_CC) || defined(__IBMCPP__)
190# warning QX_CLONE_NEED_BINARY_TO_INCREASE_PERFORMANCE
List of parameters to compile and build QxOrm library.
Provides an archive to read from portable binary files.
Provides an archive to create portable binary files.