get_class_name_primitive.h 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
  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. #ifndef _QX_GET_CLASS_NAME_PRIMITIVE_H_
  32. #define _QX_GET_CLASS_NAME_PRIMITIVE_H_
  33. #ifdef _MSC_VER
  34. #pragma once
  35. #endif
  36. /*!
  37. * \file get_class_name_primitive.h
  38. * \author Lionel Marty
  39. * \ingroup QxTraits
  40. * \brief Register all primitive and useful types of stl, boost and Qt libraries using QX_REGISTER_CLASS_NAME(T) macro
  41. */
  42. #include <string>
  43. #include <vector>
  44. #include <list>
  45. #include <map>
  46. #include <set>
  47. #include <QtCore/qglobal.h>
  48. #include <QtCore/qobject.h>
  49. #include <QtCore/qstring.h>
  50. #include <QtCore/qstringlist.h>
  51. #include <QtCore/qvector.h>
  52. #include <QtCore/qlist.h>
  53. #include <QtCore/qmap.h>
  54. #include <QtCore/qset.h>
  55. #include <QtCore/qhash.h>
  56. #include <QtCore/qdatetime.h>
  57. #include <QtCore/qvariant.h>
  58. #include <QtCore/qbytearray.h>
  59. #include <QtCore/qlinkedlist.h>
  60. #include <QtCore/qpair.h>
  61. #include <QtCore/qpoint.h>
  62. #include <QtCore/qrect.h>
  63. #include <QtCore/qregexp.h>
  64. #include <QtCore/qsharedpointer.h>
  65. #include <QtCore/qsize.h>
  66. #include <QtCore/qurl.h>
  67. #include <QtCore/quuid.h>
  68. #include <QtCore/QWeakPointer>
  69. #include <QtSql/qsqlerror.h>
  70. #ifdef _QX_ENABLE_QT_GUI
  71. #include <QtGui/qcolor.h>
  72. #include <QtGui/qfont.h>
  73. #include <QtGui/qimage.h>
  74. #include <QtGui/qbrush.h>
  75. #include <QtGui/qmatrix.h>
  76. #include <QtGui/qpicture.h>
  77. #include <QtGui/qpixmap.h>
  78. #include <QtGui/qregion.h>
  79. #endif // _QX_ENABLE_QT_GUI
  80. #if (QT_VERSION >= 0x040600)
  81. #include <QtCore/qscopedpointer.h>
  82. #endif // (QT_VERSION >= 0x040600)
  83. #include <QxDao/QxDaoPointer.h>
  84. #include <QxTraits/get_class_name.h>
  85. QX_REGISTER_CLASS_NAME(void)
  86. QX_REGISTER_CLASS_NAME(bool)
  87. QX_REGISTER_CLASS_NAME(int)
  88. QX_REGISTER_CLASS_NAME(short)
  89. QX_REGISTER_CLASS_NAME(long)
  90. QX_REGISTER_CLASS_NAME(float)
  91. QX_REGISTER_CLASS_NAME(double)
  92. QX_REGISTER_CLASS_NAME(long double)
  93. QX_REGISTER_CLASS_NAME(char)
  94. QX_REGISTER_CLASS_NAME(unsigned int)
  95. QX_REGISTER_CLASS_NAME(unsigned short)
  96. QX_REGISTER_CLASS_NAME(unsigned long)
  97. QX_REGISTER_CLASS_NAME(unsigned char)
  98. QX_REGISTER_CLASS_NAME(std::string)
  99. QX_REGISTER_CLASS_NAME(std::wstring)
  100. QX_REGISTER_CLASS_NAME(QObject)
  101. QX_REGISTER_CLASS_NAME(QString)
  102. QX_REGISTER_CLASS_NAME(QStringList)
  103. QX_REGISTER_CLASS_NAME(QByteArray)
  104. QX_REGISTER_CLASS_NAME(QDate)
  105. QX_REGISTER_CLASS_NAME(QDateTime)
  106. QX_REGISTER_CLASS_NAME(QPoint)
  107. QX_REGISTER_CLASS_NAME(QRect)
  108. QX_REGISTER_CLASS_NAME(QRegExp)
  109. QX_REGISTER_CLASS_NAME(QSize)
  110. QX_REGISTER_CLASS_NAME(QTime)
  111. QX_REGISTER_CLASS_NAME(QUrl)
  112. QX_REGISTER_CLASS_NAME(QVariant)
  113. QX_REGISTER_CLASS_NAME(QUuid)
  114. QX_REGISTER_CLASS_NAME(QSqlError)
  115. #ifdef _QX_ENABLE_QT_GUI
  116. QX_REGISTER_CLASS_NAME(QColor)
  117. QX_REGISTER_CLASS_NAME(QFont)
  118. QX_REGISTER_CLASS_NAME(QImage)
  119. QX_REGISTER_CLASS_NAME(QBrush)
  120. QX_REGISTER_CLASS_NAME(QMatrix)
  121. QX_REGISTER_CLASS_NAME(QPicture)
  122. QX_REGISTER_CLASS_NAME(QPixmap)
  123. QX_REGISTER_CLASS_NAME(QRegion)
  124. #endif // _QX_ENABLE_QT_GUI
  125. QX_REGISTER_CLASS_NAME_TEMPLATE_1(std::allocator)
  126. QX_REGISTER_CLASS_NAME_TEMPLATE_1(std::vector)
  127. QX_REGISTER_CLASS_NAME_TEMPLATE_1(std::list)
  128. QX_REGISTER_CLASS_NAME_TEMPLATE_1(std::set)
  129. #ifdef _QX_ENABLE_BOOST
  130. QX_REGISTER_CLASS_NAME_TEMPLATE_1(boost::shared_ptr)
  131. QX_REGISTER_CLASS_NAME_TEMPLATE_1(boost::scoped_ptr)
  132. QX_REGISTER_CLASS_NAME_TEMPLATE_1(boost::weak_ptr)
  133. QX_REGISTER_CLASS_NAME_TEMPLATE_1(boost::optional)
  134. #endif // _QX_ENABLE_BOOST
  135. QX_REGISTER_CLASS_NAME_TEMPLATE_1(QVector)
  136. QX_REGISTER_CLASS_NAME_TEMPLATE_1(QList)
  137. QX_REGISTER_CLASS_NAME_TEMPLATE_1(QLinkedList)
  138. QX_REGISTER_CLASS_NAME_TEMPLATE_1(QSharedPointer)
  139. QX_REGISTER_CLASS_NAME_TEMPLATE_1(QWeakPointer)
  140. QX_REGISTER_CLASS_NAME_TEMPLATE_1(QFlags)
  141. QX_REGISTER_CLASS_NAME_TEMPLATE_1(QSet)
  142. QX_REGISTER_CLASS_NAME_TEMPLATE_1(qx::dao::ptr)
  143. QX_REGISTER_CLASS_NAME_TEMPLATE_1(std::unique_ptr)
  144. QX_REGISTER_CLASS_NAME_TEMPLATE_1(std::shared_ptr)
  145. QX_REGISTER_CLASS_NAME_TEMPLATE_1(std::weak_ptr)
  146. QX_REGISTER_CLASS_NAME_TEMPLATE_2(std::pair)
  147. QX_REGISTER_CLASS_NAME_TEMPLATE_2(std::map)
  148. #ifdef _QX_ENABLE_BOOST
  149. QX_REGISTER_CLASS_NAME_TEMPLATE_2(boost::unordered_map)
  150. QX_REGISTER_CLASS_NAME_TEMPLATE_2(boost::unordered_multimap)
  151. QX_REGISTER_CLASS_NAME_TEMPLATE_1(boost::unordered_set)
  152. QX_REGISTER_CLASS_NAME_TEMPLATE_1(boost::unordered_multiset)
  153. #endif // _QX_ENABLE_BOOST
  154. QX_REGISTER_CLASS_NAME_TEMPLATE_2(std::unordered_map)
  155. QX_REGISTER_CLASS_NAME_TEMPLATE_2(std::unordered_multimap)
  156. QX_REGISTER_CLASS_NAME_TEMPLATE_1(std::unordered_set)
  157. QX_REGISTER_CLASS_NAME_TEMPLATE_1(std::unordered_multiset)
  158. QX_REGISTER_CLASS_NAME_TEMPLATE_2(QPair)
  159. QX_REGISTER_CLASS_NAME_TEMPLATE_2(QHash)
  160. QX_REGISTER_CLASS_NAME_TEMPLATE_2(QMultiHash)
  161. QX_REGISTER_CLASS_NAME_TEMPLATE_2(QMap)
  162. QX_REGISTER_CLASS_NAME_TEMPLATE_2(QMultiMap)
  163. #ifdef _QX_ENABLE_BOOST
  164. QX_REGISTER_CLASS_NAME_TEMPLATE_1(boost::tuple)
  165. QX_REGISTER_CLASS_NAME_TEMPLATE_2(boost::tuple)
  166. QX_REGISTER_CLASS_NAME_TEMPLATE_3(boost::tuple)
  167. QX_REGISTER_CLASS_NAME_TEMPLATE_4(boost::tuple)
  168. QX_REGISTER_CLASS_NAME_TEMPLATE_5(boost::tuple)
  169. QX_REGISTER_CLASS_NAME_TEMPLATE_6(boost::tuple)
  170. QX_REGISTER_CLASS_NAME_TEMPLATE_7(boost::tuple)
  171. QX_REGISTER_CLASS_NAME_TEMPLATE_8(boost::tuple)
  172. QX_REGISTER_CLASS_NAME_TEMPLATE_9(boost::tuple)
  173. #endif // _QX_ENABLE_BOOST
  174. QX_REGISTER_CLASS_NAME_TEMPLATE_1(std::tuple)
  175. QX_REGISTER_CLASS_NAME_TEMPLATE_2(std::tuple)
  176. QX_REGISTER_CLASS_NAME_TEMPLATE_3(std::tuple)
  177. QX_REGISTER_CLASS_NAME_TEMPLATE_4(std::tuple)
  178. QX_REGISTER_CLASS_NAME_TEMPLATE_5(std::tuple)
  179. QX_REGISTER_CLASS_NAME_TEMPLATE_6(std::tuple)
  180. QX_REGISTER_CLASS_NAME_TEMPLATE_7(std::tuple)
  181. QX_REGISTER_CLASS_NAME_TEMPLATE_8(std::tuple)
  182. QX_REGISTER_CLASS_NAME_TEMPLATE_9(std::tuple)
  183. #if (QT_VERSION >= 0x040600)
  184. QX_REGISTER_CLASS_NAME_TEMPLATE_1(QScopedPointer)
  185. #endif // (QT_VERSION >= 0x040600)
  186. #endif // _QX_GET_CLASS_NAME_PRIMITIVE_H_