File indexing completed on 2024-05-19 05:16:11

0001 /*
0002     SPDX-FileCopyrightText: 2010 Stephen Kelly <steveire@gmail.com>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 #include <Akonadi/Collection>
0010 #include <Akonadi/Item>
0011 #include <Akonadi/Job>
0012 #include <Akonadi/TransactionSequence>
0013 
0014 class EntityTreeCreateJob : public Akonadi::TransactionSequence
0015 {
0016     Q_OBJECT
0017 public:
0018     explicit EntityTreeCreateJob(const QList<Akonadi::Collection::List> &collections, const Akonadi::Item::List &items, QObject *parent = nullptr);
0019 
0020     void doStart() override;
0021 
0022 private:
0023     void collectionCreateJobDone(KJob *);
0024     void createNextLevelOfCollections();
0025     void createReadyItems();
0026 
0027 private:
0028     QList<Akonadi::Collection::List> m_collections;
0029     Akonadi::Item::List m_items;
0030     int m_pendingJobs = 0;
0031 };