QxOrm 1.4.9
C++ Object Relational Mapping library
Loading...
Searching...
No Matches
QxSerializeInclude.h
Go to the documentation of this file.
1/****************************************************************************
2**
3** https://www.qxorm.com/
4** Copyright (C) 2013 Lionel Marty (contact@qxorm.com)
5**
6** This file is part of the QxOrm library
7**
8** This software is provided 'as-is', without any express or implied
9** warranty. In no event will the authors be held liable for any
10** damages arising from the use of this software
11**
12** Commercial Usage
13** Licensees holding valid commercial QxOrm licenses may use this file in
14** accordance with the commercial license agreement provided with the
15** Software or, alternatively, in accordance with the terms contained in
16** a written agreement between you and Lionel Marty
17**
18** GNU General Public License Usage
19** Alternatively, this file may be used under the terms of the GNU
20** General Public License version 3.0 as published by the Free Software
21** Foundation and appearing in the file 'license.gpl3.txt' included in the
22** packaging of this file. Please review the following information to
23** ensure the GNU General Public License version 3.0 requirements will be
24** met : http://www.gnu.org/copyleft/gpl.html
25**
26** If you are unsure which license is appropriate for your use, or
27** if you have questions regarding the use of this file, please contact :
28** contact@qxorm.com
29**
30****************************************************************************/
31
32#ifdef _QX_ENABLE_BOOST_SERIALIZATION
33#ifndef _QX_SERIALIZE_INCLUDE_H_
34#define _QX_SERIALIZE_INCLUDE_H_
35
36#ifdef _MSC_VER
37#pragma once
38#endif
39
40#include <QxCommon/QxConfig.h>
41
42#ifdef _MSC_VER
43#pragma warning(push)
44#pragma warning(disable:4189)
45#pragma warning(disable:4996)
46#endif // _MSC_VER
47
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>
57#endif // _QX_SERIALIZE_POLYMORPHIC
58
59#if _QX_SERIALIZE_BINARY
60#include <boost/archive/binary_iarchive.hpp>
61#include <boost/archive/binary_oarchive.hpp>
62#endif // _QX_SERIALIZE_BINARY
63
64#if _QX_SERIALIZE_TEXT
65#include <boost/archive/text_iarchive.hpp>
66#include <boost/archive/text_oarchive.hpp>
67#endif // _QX_SERIALIZE_TEXT
68
69#if _QX_SERIALIZE_XML
70#include <boost/archive/xml_iarchive.hpp>
71#include <boost/archive/xml_oarchive.hpp>
72#endif // _QX_SERIALIZE_XML
73
74#if _QX_SERIALIZE_WIDE_BINARY
75#include <boost/archive/binary_wiarchive.hpp>
76#include <boost/archive/binary_woarchive.hpp>
77#endif // _QX_SERIALIZE_WIDE_BINARY
78
79#if _QX_SERIALIZE_WIDE_TEXT
80#include <boost/archive/text_wiarchive.hpp>
81#include <boost/archive/text_woarchive.hpp>
82#endif // _QX_SERIALIZE_WIDE_TEXT
83
84#if _QX_SERIALIZE_WIDE_XML
85#include <boost/archive/xml_wiarchive.hpp>
86#include <boost/archive/xml_woarchive.hpp>
87#endif // _QX_SERIALIZE_WIDE_XML
88
89#if _QX_SERIALIZE_PORTABLE_BINARY
92#endif // _QX_SERIALIZE_PORTABLE_BINARY
93
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>
98#else // (BOOST_VERSION > 103800)
99#include <boost/archive/impl/archive_pointer_oserializer.ipp>
100#include <boost/archive/impl/archive_pointer_iserializer.ipp>
101#endif // (BOOST_VERSION > 103800)
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>
111#endif // _QX_SERIALIZE_TEXT
112#if (BOOST_VERSION > 103800)
113#else // (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>
118#endif // _QX_SERIALIZE_TEXT
119#if _QX_SERIALIZE_XML
120#include <boost/archive/impl/xml_oarchive_impl.ipp>
121#include <boost/archive/impl/xml_iarchive_impl.ipp>
122#endif // _QX_SERIALIZE_XML
123#if _QX_SERIALIZE_WIDE_TEXT
124#include <boost/archive/impl/text_woarchive_impl.ipp>
125#include <boost/archive/impl/text_wiarchive_impl.ipp>
126#endif // _QX_SERIALIZE_WIDE_TEXT
127#if _QX_SERIALIZE_WIDE_XML
128#include <boost/archive/impl/xml_woarchive_impl.ipp>
129#include <boost/archive/impl/xml_wiarchive_impl.ipp>
130#endif // _QX_SERIALIZE_WIDE_XML
131#endif // _QX_INCLUDE_BOOST_SERIALIZE_ARCHIVE_IMPL_IPP
132#endif // (BOOST_VERSION > 103800)
133#endif // _QX_BOOST_ARCHIVE_SERIALIZER_IMPL_DEFINED_
134
135#ifdef _MSC_VER
136#pragma warning(pop)
137#endif // _MSC_VER
138
139#ifndef QX_DEFAULT_ARCHIVE_INPUT // && QX_DEFAULT_ARCHIVE_OUTPUT
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
164#endif // _QX_SERIALIZE_BINARY
165#endif // QX_DEFAULT_ARCHIVE_INPUT
166
167#ifndef QX_CLONE_STRING_STREAM // && QX_CLONE_BINARY_OUTPUT_ARCHIVE && QX_CLONE_BINARY_INPUT_ARCHIVE
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
184#endif // _QX_SERIALIZE_WIDE_BINARY
185#else
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
191#endif // defined(_MSC_VER) || defined(__BORLANDC__) || defined(__DMC__)
192#endif // QX_CLONE_STRING_STREAM
193
194#endif // _QX_SERIALIZE_INCLUDE_H_
195#endif // _QX_ENABLE_BOOST_SERIALIZATION
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.