QtProtobuf  0.6
Protobuf plugin to generate Qt classes
Public Member Functions | List of all members
QtProtobuf::QProtobufSerializationPluginInterface Class Referenceabstract

The QProtobufSerializationPluginInterface class is interface that provides possibility to load serialization/deserialization implementations to project via Qt plugin mechanism. More...

#include <qprotobufserializationplugininterface.h>

Public Member Functions

virtual std::shared_ptr< QtProtobuf::QAbstractProtobufSerializerserializer (const QString &serializerName)=0
 Method finds and returns pointer to specific serialization implementation by serializer name, otherwise returns nullptr. More...
 

Detailed Description

The QProtobufSerializationPluginInterface class is interface that provides possibility to load serialization/deserialization implementations to project via Qt plugin mechanism.

This class should be used as parent of main plugin class. Inherited class should reimplement scope of virtual methods that used by serialization/deserialization functionality. Plugin interface name should be declared via Q_INTERFACES macros. Plugin must provide metadata information about itself. Information is stored in json format and attached to plugin using Q_PLUGIN_METADATA macros.
An example of class source code:

class SERIALIZATIONSHARED_EXPORT QtSerializationPlugin : public QObject, QtProtobuf::QProtobufSerializationPluginInterface
{
Q_OBJECT
Q_PLUGIN_METADATA(IID SerializatorInterface_iid FILE "serializeinfo.json")
public:
QtSerializationPlugin();
~QtSerializationPlugin() = default;
virtual std::shared_ptr<QtProtobuf::QAbstractProtobufSerializer> serializer(const QString &serializerName);
}
The QProtobufSerializationPluginInterface class is interface that provides possibility to load serial...
Definition: qprotobufserializationplugininterface.h:84
virtual std::shared_ptr< QtProtobuf::QAbstractProtobufSerializer > serializer(const QString &serializerName)=0
Method finds and returns pointer to specific serialization implementation by serializer name,...

An example of json file:

{
"name":"Test Plugin",
"author":"Jhon Smith",
"version":1.0,
"protobufVersion":1.0,
"types":["protobuf", "json"],
"rating":0
}

Plugins are read by path that is defined by QT_PROTOBUF_PLUGIN_PATH variable. QtProtobuf reads plugins metadata list from protobuf plugin folder and provides to user possibility to choose plugin and serializer for serialization/deserialization.

Member Function Documentation

◆ serializer()

virtual std::shared_ptr<QtProtobuf::QAbstractProtobufSerializer> QtProtobuf::QProtobufSerializationPluginInterface::serializer ( const QString &  serializerName)
pure virtual

Method finds and returns pointer to specific serialization implementation by serializer name, otherwise returns nullptr.

Parameters
[in]nameof specific serializer that should be supplied by plugin.
Returns
An object to serializer realization.

The documentation for this class was generated from the following file: