00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef AKONADI_ITEM_SERIALIZER_P_H
00022 #define AKONADI_ITEM_SERIALIZER_P_H
00023
00024 #include <QtCore/QByteArray>
00025 #include <QtCore/QSet>
00026
00027 #include "akonadiprivate_export.h"
00028
00029 #include "itemserializerplugin.h"
00030
00031 #include <memory>
00032
00033 class QIODevice;
00034
00035 namespace Akonadi {
00036
00037 class Item;
00038
00043 class AKONADI_TESTS_EXPORT ItemSerializer
00044 {
00045 public:
00047 static void deserialize( Item& item, const QByteArray& label, const QByteArray& data, int version, bool external );
00049 static void deserialize( Item& item, const QByteArray& label, QIODevice& data, int version );
00051 static void serialize( const Item& item, const QByteArray& label, QByteArray& data, int &version );
00053 static void serialize( const Item& item, const QByteArray& label, QIODevice& data, int &version );
00054
00060 static void apply( Item& item, const Item &other );
00061
00065 static QSet<QByteArray> parts( const Item &item );
00066
00072 static QSet<QByteArray> availableParts( const Item &item );
00073
00082 static Item convert( const Item & item, int metaTypeId );
00083 };
00084
00089 class DefaultItemSerializerPlugin : public QObject, public ItemSerializerPlugin
00090 {
00091 Q_OBJECT
00092 Q_INTERFACES( Akonadi::ItemSerializerPlugin )
00093 public:
00094 DefaultItemSerializerPlugin();
00095
00096 bool deserialize( Item&, const QByteArray&, QIODevice&, int );
00097 void serialize( const Item&, const QByteArray&, QIODevice&, int& );
00098 };
00099
00104 class StdStringItemSerializerPlugin : public QObject, public ItemSerializerPlugin
00105 {
00106 Q_OBJECT
00107 Q_INTERFACES( Akonadi::ItemSerializerPlugin )
00108 public:
00109 StdStringItemSerializerPlugin();
00110
00111 bool deserialize( Item&, const QByteArray&, QIODevice&, int );
00112 void serialize( const Item&, const QByteArray&, QIODevice&, int& );
00113 };
00114
00115 }
00116
00117 #endif