29 #include <QSharedPointer>
32 #include <type_traits>
33 #include <unordered_map>
35 #include "qabstractprotobufserializer.h"
37 #include "qtprotobufglobal.h"
39 namespace QtProtobuf {
41 class QProtobufSerializerRegistryPrivate;
53 class Q_PROTOBUF_EXPORT QProtobufSerializerRegistry final
56 std::shared_ptr<QAbstractProtobufSerializer> getSerializer(
const QString &
id);
57 std::shared_ptr<QAbstractProtobufSerializer> getSerializer(
const QString &
id,
const QString &plugin);
58 std::unique_ptr<QAbstractProtobufSerializer> acquireSerializer(
const QString &
id,
const QString &plugin);
59 float pluginVersion(
const QString &plugin);
60 QStringList pluginSerializers(
const QString &plugin);
61 float pluginProtobufVersion(
const QString &plugin);
62 int pluginRating(
const QString &plugin);
64 QString loadPlugin(
const QString &name);
66 static QProtobufSerializerRegistry &instance() {
67 static QProtobufSerializerRegistry _instance;
72 QProtobufSerializerRegistry();
73 ~QProtobufSerializerRegistry();
75 Q_DISABLE_COPY_MOVE(QProtobufSerializerRegistry)
77 std::unique_ptr<QProtobufSerializerRegistryPrivate> dPtr;