![]() |
QxOrm 1.1.6
C++ Object Relational Mapping library
|
00001 /**************************************************************************** 00002 ** 00003 ** http://www.qxorm.com/ 00004 ** http://sourceforge.net/projects/qxorm/ 00005 ** Original file by Lionel Marty 00006 ** 00007 ** This file is part of the QxOrm library 00008 ** 00009 ** This software is provided 'as-is', without any express or implied 00010 ** warranty. In no event will the authors be held liable for any 00011 ** damages arising from the use of this software. 00012 ** 00013 ** GNU Lesser General Public License Usage 00014 ** This file must be used under the terms of the GNU Lesser 00015 ** General Public License version 2.1 as published by the Free Software 00016 ** Foundation and appearing in the file 'license.lgpl.txt' included in the 00017 ** packaging of this file. Please review the following information to 00018 ** ensure the GNU Lesser General Public License version 2.1 requirements 00019 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. 00020 ** 00021 ** If you have questions regarding the use of this file, please contact : 00022 ** contact@qxorm.com 00023 ** 00024 ****************************************************************************/ 00025 00026 #ifndef _QX_EXPORT_DLL_MACRO_CPP_H_ 00027 #define _QX_EXPORT_DLL_MACRO_CPP_H_ 00028 00029 #ifdef _MSC_VER 00030 #pragma once 00031 #endif 00032 00033 #include <QxCommon/QxConfig.h> 00034 00035 #include <QxSerialize/boost/QxExportDllMacroHpp.h> 00036 00037 #if _QX_USE_EXPORT_DLL_BOOST_SERIALIZATION_SINGLETON 00038 00039 #define QX_BOOST_EXPORT_SERIALIZATION_IMPL_POINTER_ISERIALIZER_CPP(ArchiveIn, ArchiveOut, T) \ 00040 QX_DLL_EXPORT_TEMPLATE_T_P1_P2_CPP(class, boost::archive::detail::pointer_iserializer, ArchiveIn, T) \ 00041 QX_DLL_EXPORT_TEMPLATE_T_U_P1_P2_CPP(class, boost::serialization::singleton, boost::archive::detail::pointer_iserializer, ArchiveIn, T) 00042 00043 #define QX_BOOST_EXPORT_SERIALIZATION_IMPL_POINTER_OSERIALIZER_CPP(ArchiveIn, ArchiveOut, T) \ 00044 QX_DLL_EXPORT_TEMPLATE_T_P1_P2_CPP(class, boost::archive::detail::pointer_oserializer, ArchiveOut, T) \ 00045 QX_DLL_EXPORT_TEMPLATE_T_U_P1_P2_CPP(class, boost::serialization::singleton, boost::archive::detail::pointer_oserializer, ArchiveOut, T) 00046 00047 #if _QX_SUPPORT_BOOST_SERIALIZE_SHARED_PTR_132 00048 #define QX_BOOST_EXPORT_SERIALIZATION_IMPL_POINTER_ISERIALIZER_BOOST_132_HELPER_CPP(ArchiveIn, ArchiveOut, T) \ 00049 QX_DLL_EXPORT_TEMPLATE_T_P1_P2_CPP(class, boost::archive::detail::pointer_iserializer, ArchiveIn, QX_BOOST_132_SHARED_PTR_HELPER(T)) \ 00050 QX_DLL_EXPORT_TEMPLATE_T_U_P1_P2_CPP(class, boost::serialization::singleton, boost::archive::detail::pointer_iserializer, ArchiveIn, QX_BOOST_132_SHARED_PTR_HELPER(T)) 00051 #else // _QX_SUPPORT_BOOST_SERIALIZE_SHARED_PTR_132 00052 #define QX_BOOST_EXPORT_SERIALIZATION_IMPL_POINTER_ISERIALIZER_BOOST_132_HELPER_CPP(ArchiveIn, ArchiveOut, T) /* Nothing */ 00053 #endif // _QX_SUPPORT_BOOST_SERIALIZE_SHARED_PTR_132 00054 00055 #if _QX_SUPPORT_BOOST_SERIALIZE_SHARED_PTR_132 00056 #define QX_BOOST_EXPORT_SERIALIZATION_IMPL_POINTER_OSERIALIZER_BOOST_132_HELPER_CPP(ArchiveIn, ArchiveOut, T) \ 00057 QX_DLL_EXPORT_TEMPLATE_T_P1_P2_CPP(class, boost::archive::detail::pointer_oserializer, ArchiveOut, QX_BOOST_132_SHARED_PTR_HELPER(T)) \ 00058 QX_DLL_EXPORT_TEMPLATE_T_U_P1_P2_CPP(class, boost::serialization::singleton, boost::archive::detail::pointer_oserializer, ArchiveOut, QX_BOOST_132_SHARED_PTR_HELPER(T)) 00059 #else // _QX_SUPPORT_BOOST_SERIALIZE_SHARED_PTR_132 00060 #define QX_BOOST_EXPORT_SERIALIZATION_IMPL_POINTER_OSERIALIZER_BOOST_132_HELPER_CPP(ArchiveIn, ArchiveOut, T) /* Nothing */ 00061 #endif // _QX_SUPPORT_BOOST_SERIALIZE_SHARED_PTR_132 00062 00063 #define QX_BOOST_EXPORT_SERIALIZATION_IMPL_ISERIALIZER_CPP(ArchiveIn, ArchiveOut, T) \ 00064 QX_DLL_EXPORT_TEMPLATE_T_P1_P2_CPP(class, boost::archive::detail::iserializer, ArchiveIn, T) \ 00065 QX_DLL_EXPORT_TEMPLATE_T_U_P1_P2_CPP(class, boost::serialization::singleton, boost::archive::detail::iserializer, ArchiveIn, T) 00066 00067 #define QX_BOOST_EXPORT_SERIALIZATION_IMPL_OSERIALIZER_CPP(ArchiveIn, ArchiveOut, T) \ 00068 QX_DLL_EXPORT_TEMPLATE_T_P1_P2_CPP(class, boost::archive::detail::oserializer, ArchiveOut, T) \ 00069 QX_DLL_EXPORT_TEMPLATE_T_U_P1_P2_CPP(class, boost::serialization::singleton, boost::archive::detail::oserializer, ArchiveOut, T) 00070 00071 #define QX_BOOST_EXPORT_SERIALIZATION_IMPL_EXTENDED_TYPE_ID_CPP(T) \ 00072 QX_DLL_EXPORT_TEMPLATE_T_P1_CPP(class, boost::serialization::extended_type_info_typeid, T) \ 00073 QX_DLL_EXPORT_TEMPLATE_T_U_P1_CPP(class, boost::serialization::singleton, boost::serialization::extended_type_info_typeid, T) 00074 00075 #define QX_BOOST_EXPORT_SERIALIZATION_IMPL_VOID_CAST_PRIMITIVE_CPP(T) \ 00076 QX_DLL_EXPORT_TEMPLATE_T_P1_P2_CPP(class, boost::serialization::void_cast_detail::void_caster_primitive, T, QX_GET_BASE_CLASS_2(T)) \ 00077 QX_DLL_EXPORT_TEMPLATE_T_U_P1_P2_CPP(class, boost::serialization::singleton, boost::serialization::void_cast_detail::void_caster_primitive, T, QX_GET_BASE_CLASS_2(T)) 00078 00079 #define QX_BOOST_EXPORT_SERIALIZATION_IMPL_TYPE_INFO_IMPL_CPP(T) \ 00080 QX_DLL_EXPORT_TEMPLATE_T_P1_CPP(struct, boost::serialization::type_info_implementation, T) \ 00081 QX_DLL_EXPORT_TEMPLATE_T_U_P1_CPP(class, boost::serialization::singleton, boost::serialization::type_info_implementation, T) 00082 00083 #if (BOOST_VERSION < 104100) 00084 #define QX_BOOST_EXPORT_SERIALIZATION_SAVE_POINTER_TYPE_CPP(ArchiveIn, ArchiveOut, T) \ 00085 QX_DLL_EXPORT_TEMPLATE_T_P1_P2_CPP(struct, boost::archive::detail::save_pointer_type, ArchiveOut, T *) \ 00086 QX_DLL_EXPORT_TEMPLATE_T_U_P1_P2_CPP(class, boost::serialization::singleton, boost::archive::detail::save_pointer_type, ArchiveOut, T *) 00087 #else // (BOOST_VERSION < 104100) 00088 #define QX_BOOST_EXPORT_SERIALIZATION_SAVE_POINTER_TYPE_CPP(ArchiveIn, ArchiveOut, T) /* Nothing */ 00089 #endif // (BOOST_VERSION < 104100) 00090 00091 #if (BOOST_VERSION < 104100) 00092 #define QX_BOOST_EXPORT_SERIALIZATION_SAVE_NON_POINTER_TYPE_CPP(ArchiveIn, ArchiveOut, T) \ 00093 QX_DLL_EXPORT_TEMPLATE_T_P1_P2_CPP(struct, boost::archive::detail::save_non_pointer_type, ArchiveOut, T) \ 00094 QX_DLL_EXPORT_TEMPLATE_T_U_P1_P2_CPP(class, boost::serialization::singleton, boost::archive::detail::save_non_pointer_type, ArchiveOut, T) 00095 #else // (BOOST_VERSION < 104100) 00096 #define QX_BOOST_EXPORT_SERIALIZATION_SAVE_NON_POINTER_TYPE_CPP(ArchiveIn, ArchiveOut, T) /* Nothing */ 00097 #endif // (BOOST_VERSION < 104100) 00098 00099 #if (BOOST_VERSION < 104100) 00100 #define QX_BOOST_EXPORT_SERIALIZATION_SAVE_ENUM_TYPE_CPP(ArchiveIn, ArchiveOut, T) \ 00101 QX_DLL_EXPORT_TEMPLATE_T_P1_P2_CPP(struct, boost::archive::detail::save_enum_type, ArchiveOut, T) \ 00102 QX_DLL_EXPORT_TEMPLATE_T_U_P1_P2_CPP(class, boost::serialization::singleton, boost::archive::detail::save_enum_type, ArchiveOut, T) 00103 #else // (BOOST_VERSION < 104100) 00104 #define QX_BOOST_EXPORT_SERIALIZATION_SAVE_ENUM_TYPE_CPP(ArchiveIn, ArchiveOut, T) /* Nothing */ 00105 #endif // (BOOST_VERSION < 104100) 00106 00107 #if (BOOST_VERSION < 104100) 00108 #define QX_BOOST_EXPORT_SERIALIZATION_SAVE_ARRAY_TYPE_CPP(ArchiveIn, ArchiveOut, T) \ 00109 QX_DLL_EXPORT_TEMPLATE_T_P1_P2_CPP(struct, boost::archive::detail::save_array_type, ArchiveOut, T) \ 00110 QX_DLL_EXPORT_TEMPLATE_T_U_P1_P2_CPP(class, boost::serialization::singleton, boost::archive::detail::save_array_type, ArchiveOut, T) 00111 #else // (BOOST_VERSION < 104100) 00112 #define QX_BOOST_EXPORT_SERIALIZATION_SAVE_ARRAY_TYPE_CPP(ArchiveIn, ArchiveOut, T) /* Nothing */ 00113 #endif // (BOOST_VERSION < 104100) 00114 00115 #if (BOOST_VERSION < 104100) 00116 #define QX_BOOST_EXPORT_SERIALIZATION_LOAD_POINTER_TYPE_CPP(ArchiveIn, ArchiveOut, T) \ 00117 QX_DLL_EXPORT_TEMPLATE_T_P1_P2_CPP(struct, boost::archive::detail::load_pointer_type, ArchiveIn, T *) \ 00118 QX_DLL_EXPORT_TEMPLATE_T_U_P1_P2_CPP(class, boost::serialization::singleton, boost::archive::detail::load_pointer_type, ArchiveIn, T *) 00119 #else // (BOOST_VERSION < 104100) 00120 #define QX_BOOST_EXPORT_SERIALIZATION_LOAD_POINTER_TYPE_CPP(ArchiveIn, ArchiveOut, T) /* Nothing */ 00121 #endif // (BOOST_VERSION < 104100) 00122 00123 #if (BOOST_VERSION < 104100) 00124 #define QX_BOOST_EXPORT_SERIALIZATION_LOAD_NON_POINTER_TYPE_CPP(ArchiveIn, ArchiveOut, T) \ 00125 QX_DLL_EXPORT_TEMPLATE_T_P1_P2_CPP(struct, boost::archive::detail::load_non_pointer_type, ArchiveIn, T) \ 00126 QX_DLL_EXPORT_TEMPLATE_T_U_P1_P2_CPP(class, boost::serialization::singleton, boost::archive::detail::load_non_pointer_type, ArchiveIn, T) 00127 #else // (BOOST_VERSION < 104100) 00128 #define QX_BOOST_EXPORT_SERIALIZATION_LOAD_NON_POINTER_TYPE_CPP(ArchiveIn, ArchiveOut, T) /* Nothing */ 00129 #endif // (BOOST_VERSION < 104100) 00130 00131 #if (BOOST_VERSION < 104100) 00132 #define QX_BOOST_EXPORT_SERIALIZATION_LOAD_ENUM_TYPE_CPP(ArchiveIn, ArchiveOut, T) \ 00133 QX_DLL_EXPORT_TEMPLATE_T_P1_P2_CPP(struct, boost::archive::detail::load_enum_type, ArchiveIn, T) \ 00134 QX_DLL_EXPORT_TEMPLATE_T_U_P1_P2_CPP(class, boost::serialization::singleton, boost::archive::detail::load_enum_type, ArchiveIn, T) 00135 #else // (BOOST_VERSION < 104100) 00136 #define QX_BOOST_EXPORT_SERIALIZATION_LOAD_ENUM_TYPE_CPP(ArchiveIn, ArchiveOut, T) /* Nothing */ 00137 #endif // (BOOST_VERSION < 104100) 00138 00139 #if (BOOST_VERSION < 104100) 00140 #define QX_BOOST_EXPORT_SERIALIZATION_LOAD_ARRAY_TYPE_CPP(ArchiveIn, ArchiveOut, T) \ 00141 QX_DLL_EXPORT_TEMPLATE_T_P1_P2_CPP(struct, boost::archive::detail::load_array_type, ArchiveIn, T) \ 00142 QX_DLL_EXPORT_TEMPLATE_T_U_P1_P2_CPP(class, boost::serialization::singleton, boost::archive::detail::load_array_type, ArchiveIn, T) 00143 #else // (BOOST_VERSION < 104100) 00144 #define QX_BOOST_EXPORT_SERIALIZATION_LOAD_ARRAY_TYPE_CPP(ArchiveIn, ArchiveOut, T) /* Nothing */ 00145 #endif // (BOOST_VERSION < 104100) 00146 00147 #define QX_BOOST_EXPORT_SERIALIZATION_IMPL_WITH_ARCHIVE_CPP(ArchiveIn, ArchiveOut, T) \ 00148 QX_BOOST_EXPORT_SERIALIZATION_IMPL_ISERIALIZER_CPP(ArchiveIn, ArchiveOut, T) \ 00149 QX_BOOST_EXPORT_SERIALIZATION_IMPL_OSERIALIZER_CPP(ArchiveIn, ArchiveOut, T) \ 00150 QX_BOOST_EXPORT_SERIALIZATION_IMPL_POINTER_ISERIALIZER_CPP(ArchiveIn, ArchiveOut, T) \ 00151 QX_BOOST_EXPORT_SERIALIZATION_IMPL_POINTER_OSERIALIZER_CPP(ArchiveIn, ArchiveOut, T) \ 00152 QX_BOOST_EXPORT_SERIALIZATION_IMPL_POINTER_ISERIALIZER_BOOST_132_HELPER_CPP(ArchiveIn, ArchiveOut, T) \ 00153 QX_BOOST_EXPORT_SERIALIZATION_IMPL_POINTER_OSERIALIZER_BOOST_132_HELPER_CPP(ArchiveIn, ArchiveOut, T) \ 00154 QX_BOOST_EXPORT_SERIALIZATION_SAVE_POINTER_TYPE_CPP(ArchiveIn, ArchiveOut, T) \ 00155 QX_BOOST_EXPORT_SERIALIZATION_LOAD_POINTER_TYPE_CPP(ArchiveIn, ArchiveOut, T) 00156 00157 #define QX_BOOST_EXPORT_SERIALIZATION_IMPL_CPP(T) \ 00158 QX_BOOST_EXPORT_SERIALIZATION_IMPL_EXTENDED_TYPE_ID_CPP(T) \ 00159 /* 00160 QX_BOOST_EXPORT_SERIALIZATION_IMPL_VOID_CAST_PRIMITIVE_CPP(T) \ 00161 QX_BOOST_EXPORT_SERIALIZATION_IMPL_TYPE_INFO_IMPL_CPP(T) 00162 */ 00163 00164 #if _QX_SERIALIZE_POLYMORPHIC 00165 #define QX_BOOST_EXPORT_SERIALIZATION_POLYMORPHIC_CPP(T) \ 00166 QX_BOOST_EXPORT_SERIALIZATION_IMPL_WITH_ARCHIVE_CPP(boost::archive::polymorphic_iarchive, boost::archive::polymorphic_oarchive, T) 00167 #else // _QX_SERIALIZE_POLYMORPHIC 00168 #define QX_BOOST_EXPORT_SERIALIZATION_POLYMORPHIC_CPP(T) /* Nothing */ 00169 #endif // _QX_SERIALIZE_POLYMORPHIC 00170 00171 #if _QX_SERIALIZE_BINARY 00172 #define QX_BOOST_EXPORT_SERIALIZATION_BINARY_CPP(T) \ 00173 QX_BOOST_EXPORT_SERIALIZATION_IMPL_WITH_ARCHIVE_CPP(boost::archive::binary_iarchive, boost::archive::binary_oarchive, T) 00174 #else // _QX_SERIALIZE_BINARY 00175 #define QX_BOOST_EXPORT_SERIALIZATION_BINARY_CPP(T) /* Nothing */ 00176 #endif // _QX_SERIALIZE_BINARY 00177 00178 #if _QX_SERIALIZE_TEXT 00179 #define QX_BOOST_EXPORT_SERIALIZATION_TEXT_CPP(T) \ 00180 QX_BOOST_EXPORT_SERIALIZATION_IMPL_WITH_ARCHIVE_CPP(boost::archive::text_iarchive, boost::archive::text_oarchive, T) 00181 #else // _QX_SERIALIZE_TEXT 00182 #define QX_BOOST_EXPORT_SERIALIZATION_TEXT_CPP(T) /* Nothing */ 00183 #endif // _QX_SERIALIZE_TEXT 00184 00185 #if _QX_SERIALIZE_XML 00186 #define QX_BOOST_EXPORT_SERIALIZATION_XML_CPP(T) \ 00187 QX_BOOST_EXPORT_SERIALIZATION_IMPL_WITH_ARCHIVE_CPP(boost::archive::xml_iarchive, boost::archive::xml_oarchive, T) 00188 #else // _QX_SERIALIZE_XML 00189 #define QX_BOOST_EXPORT_SERIALIZATION_XML_CPP(T) /* Nothing */ 00190 #endif // _QX_SERIALIZE_XML 00191 00192 #if _QX_SERIALIZE_PORTABLE_BINARY 00193 #define QX_BOOST_EXPORT_SERIALIZATION_PORTABLE_BINARY_CPP(T) \ 00194 QX_BOOST_EXPORT_SERIALIZATION_IMPL_WITH_ARCHIVE_CPP(eos::portable_iarchive, eos::portable_oarchive, T) 00195 #else // _QX_SERIALIZE_PORTABLE_BINARY 00196 #define QX_BOOST_EXPORT_SERIALIZATION_PORTABLE_BINARY_CPP(T) /* Nothing */ 00197 #endif // _QX_SERIALIZE_PORTABLE_BINARY 00198 00199 #if _QX_SERIALIZE_WIDE_BINARY 00200 #define QX_BOOST_EXPORT_SERIALIZATION_WIDE_BINARY_CPP(T) \ 00201 QX_BOOST_EXPORT_SERIALIZATION_IMPL_WITH_ARCHIVE_CPP(boost::archive::binary_wiarchive, boost::archive::binary_woarchive, T) 00202 #else // _QX_SERIALIZE_WIDE_BINARY 00203 #define QX_BOOST_EXPORT_SERIALIZATION_WIDE_BINARY_CPP(T) /* Nothing */ 00204 #endif // _QX_SERIALIZE_WIDE_BINARY 00205 00206 #if _QX_SERIALIZE_WIDE_TEXT 00207 #define QX_BOOST_EXPORT_SERIALIZATION_WIDE_TEXT_CPP(T) \ 00208 QX_BOOST_EXPORT_SERIALIZATION_IMPL_WITH_ARCHIVE_CPP(boost::archive::text_wiarchive, boost::archive::text_woarchive, T) 00209 #else // _QX_SERIALIZE_WIDE_TEXT 00210 #define QX_BOOST_EXPORT_SERIALIZATION_WIDE_TEXT_CPP(T) /* Nothing */ 00211 #endif // _QX_SERIALIZE_WIDE_TEXT 00212 00213 #if _QX_SERIALIZE_WIDE_XML 00214 #define QX_BOOST_EXPORT_SERIALIZATION_WIDE_XML_CPP(T) \ 00215 QX_BOOST_EXPORT_SERIALIZATION_IMPL_WITH_ARCHIVE_CPP(boost::archive::xml_wiarchive, boost::archive::xml_woarchive, T) 00216 #else // _QX_SERIALIZE_WIDE_XML 00217 #define QX_BOOST_EXPORT_SERIALIZATION_WIDE_XML_CPP(T) /* Nothing */ 00218 #endif // _QX_SERIALIZE_WIDE_XML 00219 00220 #define QX_BOOST_EXPORT_SERIALIZATION_CPP(T) \ 00221 QX_BOOST_EXPORT_SERIALIZATION_IMPL_CPP(T) \ 00222 QX_BOOST_EXPORT_SERIALIZATION_POLYMORPHIC_CPP(T) \ 00223 QX_BOOST_EXPORT_SERIALIZATION_BINARY_CPP(T) \ 00224 QX_BOOST_EXPORT_SERIALIZATION_TEXT_CPP(T) \ 00225 QX_BOOST_EXPORT_SERIALIZATION_XML_CPP(T) \ 00226 QX_BOOST_EXPORT_SERIALIZATION_PORTABLE_BINARY_CPP(T) \ 00227 QX_BOOST_EXPORT_SERIALIZATION_WIDE_BINARY_CPP(T) \ 00228 QX_BOOST_EXPORT_SERIALIZATION_WIDE_TEXT_CPP(T) \ 00229 QX_BOOST_EXPORT_SERIALIZATION_WIDE_XML_CPP(T) 00230 00231 #else // _QX_USE_EXPORT_DLL_BOOST_SERIALIZATION_SINGLETON 00232 00233 #define QX_BOOST_EXPORT_SERIALIZATION_CPP(T) /* Nothing */ 00234 00235 #endif // _QX_USE_EXPORT_DLL_BOOST_SERIALIZATION_SINGLETON 00236 #endif // _QX_EXPORT_DLL_MACRO_CPP_H_