123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- #pragma once
- #include <QObject>
- #include <QSharedPointer>
- #include <memory>
- #include <type_traits>
- #include <unordered_map>
- #include "qabstractprotobufserializer.h"
- #include "qtprotobufglobal.h"
- namespace QtProtobuf {
- class QProtobufSerializerRegistryPrivate;
- class Q_PROTOBUF_EXPORT QProtobufSerializerRegistry final
- {
- public:
- std::shared_ptr<QAbstractProtobufSerializer> getSerializer(const QString &id);
- std::shared_ptr<QAbstractProtobufSerializer> getSerializer(const QString &id, const QString &plugin);
- std::unique_ptr<QAbstractProtobufSerializer> acquireSerializer(const QString &id, const QString &plugin);
- float pluginVersion(const QString &plugin);
- QStringList pluginSerializers(const QString &plugin);
- float pluginProtobufVersion(const QString &plugin);
- int pluginRating(const QString &plugin);
- QString loadPlugin(const QString &name);
- static QProtobufSerializerRegistry &instance() {
- static QProtobufSerializerRegistry _instance;
- return _instance;
- }
- private:
- QProtobufSerializerRegistry();
- ~QProtobufSerializerRegistry();
- Q_DISABLE_COPY_MOVE(QProtobufSerializerRegistry)
- std::unique_ptr<QProtobufSerializerRegistryPrivate> dPtr;
- };
- }
|