| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- #ifndef QTJSONSERIALIZER_METAWRITERS_P_H
- #define QTJSONSERIALIZER_METAWRITERS_P_H
- #include "metawriters.h"
- #include <QtCore/QLoggingCategory>
- namespace QtJsonSerializer::MetaWriters {
- class MetaWritersPrivate
- {
- public:
- static QReadWriteLock sequenceLock;
- static QHash<int, SequentialWriterFactory*> sequenceFactories;
- static QHash<int, SequentialWriter::SequenceInfo> sequenceInfoCache;
- static QReadWriteLock associationLock;
- static QHash<int, AssociativeWriterFactory*> associationFactories;
- static QHash<int, AssociativeWriter::AssociationInfo> associationInfoCache;
- static SequentialWriter::SequenceInfo tryParseSequenceInfo(int metaTypeId);
- static AssociativeWriter::AssociationInfo tryParseAssociationInfo(int metaTypeId);
- };
- Q_DECLARE_LOGGING_CATEGORY(logSeqWriter)
- Q_DECLARE_LOGGING_CATEGORY(logAsocWriter)
- namespace Implementations {
- class SequentialWriterFactoryQStringList : public SequentialWriterFactory
- {
- public:
- QSharedPointer<SequentialWriter> create(void *data) const final {
- return QSharedPointer<SequentialWriterImpl<QList, QString>>::create(reinterpret_cast<QStringList*>(data));
- }
- };
- class SequentialWriterFactoryQByteArrayList : public SequentialWriterFactory
- {
- public:
- QSharedPointer<SequentialWriter> create(void *data) const final {
- return QSharedPointer<SequentialWriterImpl<QList, QByteArray>>::create(reinterpret_cast<QByteArrayList*>(data));
- }
- };
- class SequentialWriterFactoryQVariantList : public SequentialWriterFactory
- {
- public:
- QSharedPointer<SequentialWriter> create(void *data) const final {
- return QSharedPointer<SequentialWriterImpl<QList, QVariant>>::create(reinterpret_cast<QVariantList*>(data));
- }
- };
- class AssociativeWriterFactoryQVariantMap : public AssociativeWriterFactory
- {
- public:
- QSharedPointer<AssociativeWriter> create(void *data) const final {
- return QSharedPointer<AssociativeWriterImpl<QMap, QString, QVariant>>::create(reinterpret_cast<QVariantMap*>(data));
- }
- };
- class AssociativeWriterFactoryQVariantHash : public AssociativeWriterFactory
- {
- public:
- QSharedPointer<AssociativeWriter> create(void *data) const final {
- return QSharedPointer<AssociativeWriterImpl<QHash, QString, QVariant>>::create(reinterpret_cast<QVariantHash*>(data));
- }
- };
- }
- }
- #endif // QTJSONSERIALIZER_METAWRITERS_P_H
|