File indexing completed on 2024-05-12 05:10:41

0001 /*
0002     SPDX-FileCopyrightText: 2007 Volker Krause <vkrause@kde.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 #include <QObject>
0010 
0011 #include <Akonadi/DifferencesAlgorithmInterface>
0012 #include <Akonadi/GidExtractorInterface>
0013 #include <Akonadi/ItemSerializerPlugin>
0014 
0015 #include <KCalendarCore/ICalFormat>
0016 
0017 namespace Akonadi
0018 {
0019 class SerializerPluginKCalCore : public QObject, public ItemSerializerPlugin, public DifferencesAlgorithmInterface, public GidExtractorInterface
0020 {
0021     Q_OBJECT
0022     Q_INTERFACES(Akonadi::ItemSerializerPlugin)
0023     Q_INTERFACES(Akonadi::DifferencesAlgorithmInterface)
0024     Q_INTERFACES(Akonadi::GidExtractorInterface)
0025     Q_PLUGIN_METADATA(IID "org.kde.akonadi.SerializerPluginKCalCore")
0026 public:
0027     SerializerPluginKCalCore();
0028     bool deserialize(Item &item, const QByteArray &label, QIODevice &data, int version) override;
0029     void serialize(const Item &item, const QByteArray &label, QIODevice &data, int &version) override;
0030 
0031     void compare(Akonadi::AbstractDifferencesReporter *reporter, const Akonadi::Item &leftItem, const Akonadi::Item &rightItem) override;
0032 
0033     QString extractGid(const Item &item) const override;
0034 
0035 private:
0036     KCalendarCore::ICalFormat mFormat;
0037 };
0038 }