diff options
author | Sean Harmer <sean.harmer@kdab.com> | 2016-04-15 12:23:19 +0100 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2016-04-17 05:38:46 +0000 |
commit | e34394a63cf74cd4fdf729eac12258f2c555776b (patch) | |
tree | 2191cff9551de14aef57cb43200056d1ee169ff5 /src/core/resources/qhandlemanager_p.h | |
parent | 8eca0d465e6d30283fb41ba631f60c03d5047ef2 (diff) |
Add debug operator for QHandleManager
Change-Id: I706b735235d2dd6ef8949dad1f0b3297275927ee
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'src/core/resources/qhandlemanager_p.h')
-rw-r--r-- | src/core/resources/qhandlemanager_p.h | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/core/resources/qhandlemanager_p.h b/src/core/resources/qhandlemanager_p.h index 0d9a82b65..c0b14374a 100644 --- a/src/core/resources/qhandlemanager_p.h +++ b/src/core/resources/qhandlemanager_p.h @@ -61,6 +61,14 @@ QT_BEGIN_NAMESPACE namespace Qt3DCore { +#ifndef QT_NO_DEBUG_STREAM +template <typename T, uint INDEXBITS> +class QHandleManager; + +template <typename T, uint INDEXBITS = 16> +QDebug operator<<(QDebug dbg, const QHandleManager<T, INDEXBITS> &manager); +#endif + template <typename T, uint INDEXBITS = 16> class QHandleManager { @@ -85,6 +93,8 @@ public: private: Q_DISABLE_COPY(QHandleManager) + friend QDebug operator<< <>(QDebug dbg, const QHandleManager<T, INDEXBITS> &manager); + template <typename U> struct HandleEntry { @@ -211,6 +221,28 @@ const T *QHandleManager<T, INDEXBITS>::constData(const QHandle<T, INDEXBITS> &ha return d; } +#ifndef QT_NO_DEBUG_STREAM +template <typename T, uint INDEXBITS> +QDebug operator<<(QDebug dbg, const QHandleManager<T, INDEXBITS> &manager) +{ + QDebugStateSaver saver(dbg); + dbg << "First free entry =" << manager.m_firstFreeEntry << endl; + + const auto end = manager.m_entries.cend(); + const auto max = manager.m_activeEntryCount; + auto i = 0; + for (auto it = manager.m_entries.cbegin(); it != end && i < max; ++it) { + const auto isActive = it->m_active; + if (isActive) { + dbg << *(it->m_data); + ++i; + } + } + + return dbg; +} +#endif + } // Qt3D QT_END_NAMESPACE |