pyside6_qtconcurrent_python.h 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. // Copyright (C) 2022 The Qt Company Ltd.
  2. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
  3. #ifndef SBK_QTCONCURRENT_PYTHON_H
  4. #define SBK_QTCONCURRENT_PYTHON_H
  5. #include <sbkpython.h>
  6. #include <sbkmodule.h>
  7. #include <sbkconverter.h>
  8. // Module Includes
  9. #include <pyside6_qtcore_python.h>
  10. // Bound library includes
  11. #include <QtConcurrent/qtaskbuilder.h>
  12. #include <QtConcurrent/qtconcurrentreducekernel.h>
  13. #include <QtConcurrent/qtconcurrentrunbase.h>
  14. #include <QtConcurrent/qtconcurrentthreadengine.h>
  15. #if QT_CONFIG(future)
  16. #include <QtCore/qfuture.h>
  17. #include <QtCore/qfuturewatcher.h>
  18. #endif
  19. QT_BEGIN_NAMESPACE
  20. QT_END_NAMESPACE
  21. // Type indices
  22. enum [[deprecated]] : int {
  23. SBK_QFUTUREQSTRING_IDX = 2,
  24. SBK_QFUTURE_QSTRING_IDX = 2,
  25. SBK_QFUTUREVOID_IDX = 4,
  26. SBK_QFUTURE_VOID_IDX = 4,
  27. SBK_QFUTUREWATCHERQSTRING_IDX = 6,
  28. SBK_QFUTUREWATCHER_QSTRING_IDX = 6,
  29. SBK_QFUTUREWATCHERVOID_IDX = 8,
  30. SBK_QFUTUREWATCHER_VOID_IDX = 8,
  31. SBK_QTCONCURRENT_FUTURERESULT_IDX = 12,
  32. SBK_QTCONCURRENT_THREADFUNCTIONRESULT_IDX = 16,
  33. SBK_QTCONCURRENT_REDUCEOPTION_IDX = 14,
  34. SBK_QFLAGS_QTCONCURRENT_REDUCEOPTION_IDX = 0,
  35. SBK_QTCONCURRENTQTCONCURRENT_IDX = 10,
  36. SBK_QTCONCURRENT_IDX_COUNT = 18,
  37. };
  38. // Type indices
  39. enum : int {
  40. SBK_QFutureQString_IDX = 1,
  41. SBK_QFuture_QString_IDX = 1,
  42. SBK_QFutureVoid_IDX = 2,
  43. SBK_QFuture_void_IDX = 2,
  44. SBK_QFutureWatcherQString_IDX = 3,
  45. SBK_QFutureWatcher_QString_IDX = 3,
  46. SBK_QFutureWatcherVoid_IDX = 4,
  47. SBK_QFutureWatcher_void_IDX = 4,
  48. SBK_QtConcurrent_FutureResult_IDX = 6,
  49. SBK_QtConcurrent_ThreadFunctionResult_IDX = 8,
  50. SBK_QtConcurrent_ReduceOption_IDX = 7,
  51. SBK_QFlags_QtConcurrent_ReduceOption_IDX = 0,
  52. SBK_QtConcurrentQtConcurrent_IDX = 5,
  53. SBK_QtConcurrent_IDX_COUNT = 9,
  54. };
  55. // This variable stores all Python types exported by this module.
  56. extern Shiboken::Module::TypeInitStruct *SbkPySide6_QtConcurrentTypeStructs;
  57. // This variable stores all Python types exported by this module in a backwards compatible way with identical indexing.
  58. [[deprecated]] extern PyTypeObject **SbkPySide6_QtConcurrentTypes;
  59. // This variable stores the Python module object exported by this module.
  60. extern PyObject *SbkPySide6_QtConcurrentModuleObject;
  61. // This variable stores all type converters exported by this module.
  62. extern SbkConverter **SbkPySide6_QtConcurrentTypeConverters;
  63. // Converter indices
  64. enum [[deprecated]] : int {
  65. SBK_QTCONCURRENT_QLIST_INT_IDX = 0, // QList<int>
  66. SBK_QTCONCURRENT_QLIST_QVARIANT_IDX = 1, // QList<QVariant>
  67. SBK_QTCONCURRENT_QLIST_QSTRING_IDX = 2, // QList<QString>
  68. SBK_QTCONCURRENT_QMAP_QSTRING_QVARIANT_IDX = 3, // QMap<QString,QVariant>
  69. SBK_QTCONCURRENT_CONVERTERS_IDX_COUNT = 4,
  70. };
  71. // Converter indices
  72. enum : int {
  73. SBK_QtConcurrent_QList_int_IDX = 0, // QList<int>
  74. SBK_QtConcurrent_QList_QVariant_IDX = 1, // QList<QVariant>
  75. SBK_QtConcurrent_QList_QString_IDX = 2, // QList<QString>
  76. SBK_QtConcurrent_QMap_QString_QVariant_IDX = 3, // QMap<QString,QVariant>
  77. SBK_QtConcurrent_CONVERTERS_IDX_COUNT = 4,
  78. };
  79. // typedef entries
  80. using QFutureQString = QFuture<QString>;
  81. using QFutureVoid = QFuture<void>;
  82. using QFutureWatcherQString = QFutureWatcher<QString>;
  83. using QFutureWatcherVoid = QFutureWatcher<void>;
  84. // Macros for type check
  85. QT_WARNING_PUSH
  86. QT_WARNING_DISABLE_DEPRECATED
  87. namespace Shiboken
  88. {
  89. // PyType functions, to get the PyObjectType for a type T
  90. #if QT_CONFIG(future)
  91. template<> inline PyTypeObject *SbkType< QFutureQString >() { return Shiboken::Module::get(SbkPySide6_QtConcurrentTypeStructs[SBK_QFutureQString_IDX]); }
  92. #endif
  93. #if QT_CONFIG(future)
  94. template<> inline PyTypeObject *SbkType< QFutureVoid >() { return Shiboken::Module::get(SbkPySide6_QtConcurrentTypeStructs[SBK_QFutureVoid_IDX]); }
  95. #endif
  96. #if QT_CONFIG(future)
  97. template<> inline PyTypeObject *SbkType< QFutureWatcherQString >() { return Shiboken::Module::get(SbkPySide6_QtConcurrentTypeStructs[SBK_QFutureWatcherQString_IDX]); }
  98. #endif
  99. #if QT_CONFIG(future)
  100. template<> inline PyTypeObject *SbkType< QFutureWatcherVoid >() { return Shiboken::Module::get(SbkPySide6_QtConcurrentTypeStructs[SBK_QFutureWatcherVoid_IDX]); }
  101. #endif
  102. template<> inline PyTypeObject *SbkType< ::QtConcurrent::FutureResult >() { return Shiboken::Module::get(SbkPySide6_QtConcurrentTypeStructs[SBK_QtConcurrent_FutureResult_IDX]); }
  103. template<> inline PyTypeObject *SbkType< ::QtConcurrent::ThreadFunctionResult >() { return Shiboken::Module::get(SbkPySide6_QtConcurrentTypeStructs[SBK_QtConcurrent_ThreadFunctionResult_IDX]); }
  104. template<> inline PyTypeObject *SbkType< ::QtConcurrent::ReduceOption >() { return Shiboken::Module::get(SbkPySide6_QtConcurrentTypeStructs[SBK_QtConcurrent_ReduceOption_IDX]); }
  105. template<> inline PyTypeObject *SbkType< ::QFlags<QtConcurrent::ReduceOption> >() { return Shiboken::Module::get(SbkPySide6_QtConcurrentTypeStructs[SBK_QFlags_QtConcurrent_ReduceOption_IDX]); }
  106. } // namespace Shiboken
  107. QT_WARNING_POP
  108. #endif // SBK_QTCONCURRENT_PYTHON_H