1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
/*
* SPDX-FileCopyrightText: 2022 Kai Uwe Broulik <kde@broulik.de>
* SPDX-License-Identifier: GPL-2.0-or-later
*/
#pragma once
#include <libimobiledevice/afc.h>
#include <libimobiledevice/house_arrest.h>
#include <QSharedPointer>
#include <KIO/Global>
#include <KIO/Job>
#include <KIO/UDSEntry>
#include <KIO/WorkerBase>
class AfcDevice;
class AfcClient
{
public:
explicit AfcClient(AfcDevice *devce);
~AfcClient();
using Ptr = QSharedPointer<AfcClient>;
KIO::WorkerResult init(lockdownd_client_t lockdowndClient, const QString &appId);
AfcDevice *device() const;
afc_client_t internalClient() const;
QString appId() const;
KIO::WorkerResult entry(const QString &path, KIO::UDSEntry &entry);
KIO::WorkerResult entryList(const QString &path, QStringList &entryList);
KIO::WorkerResult del(const QString &path);
KIO::WorkerResult delRecursively(const QString &path);
KIO::WorkerResult rename(const QString &src, const QString &dest, KIO::JobFlags flags);
KIO::WorkerResult symlink(const QString &target, const QString &dest, KIO::JobFlags flags);
KIO::WorkerResult mkdir(const QString &path);
KIO::WorkerResult setModificationTime(const QString &path, const QDateTime &mtime);
private:
AfcDevice *m_device = nullptr;
QString m_appId;
afc_client_t m_client = nullptr;
house_arrest_client_t m_houseArrestClient = nullptr;
Q_DISABLE_COPY(AfcClient)
};
|