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 class QIODevice;
00032
00033 namespace Akonadi {
00034
00035 class Item;
00036
00041 class AKONADI_TESTS_EXPORT ItemSerializer
00042 {
00043 public:
00045 static void deserialize( Item& item, const QByteArray& label, const QByteArray& data, int version, bool external );
00047 static void deserialize( Item& item, const QByteArray& label, QIODevice& data, int version );
00049 static void serialize( const Item& item, const QByteArray& label, QByteArray& data, int &version );
00051 static void serialize( const Item& item, const QByteArray& label, QIODevice& data, int &version );
00052
00058 static void apply( Item& item, const Item &other );
00059
00063 static QSet<QByteArray> parts( const Item &item );
00064
00070 static QSet<QByteArray> availableParts( const Item &item );
00071 };
00072
00077 class DefaultItemSerializerPlugin : public QObject, public ItemSerializerPlugin
00078 {
00079 Q_OBJECT
00080 Q_INTERFACES( Akonadi::ItemSerializerPlugin )
00081 public:
00082 DefaultItemSerializerPlugin();
00083
00084 bool deserialize( Item&, const QByteArray&, QIODevice&, int );
00085 void serialize( const Item&, const QByteArray&, QIODevice&, int& );
00086 };
00087
00088 }
00089
00090 #endif