File indexing completed on 2024-04-21 04:57:26
0001 /* 0002 * SPDX-FileCopyrightText: 2022 Kai Uwe Broulik <kde@broulik.de> 0003 * SPDX-License-Identifier: GPL-2.0-or-later 0004 */ 0005 0006 #pragma once 0007 0008 #include <libimobiledevice/afc.h> 0009 #include <libimobiledevice/house_arrest.h> 0010 0011 #include <QSharedPointer> 0012 0013 #include <KIO/Global> 0014 #include <KIO/Job> 0015 #include <KIO/UDSEntry> 0016 #include <KIO/WorkerBase> 0017 0018 class AfcDevice; 0019 0020 class AfcClient 0021 { 0022 public: 0023 explicit AfcClient(AfcDevice *devce); 0024 ~AfcClient(); 0025 0026 using Ptr = QSharedPointer<AfcClient>; 0027 0028 KIO::WorkerResult init(lockdownd_client_t lockdowndClient, const QString &appId); 0029 0030 AfcDevice *device() const; 0031 afc_client_t internalClient() const; 0032 0033 QString appId() const; 0034 0035 KIO::WorkerResult entry(const QString &path, KIO::UDSEntry &entry); 0036 KIO::WorkerResult entryList(const QString &path, QStringList &entryList); 0037 0038 KIO::WorkerResult del(const QString &path); 0039 KIO::WorkerResult delRecursively(const QString &path); 0040 KIO::WorkerResult rename(const QString &src, const QString &dest, KIO::JobFlags flags); 0041 KIO::WorkerResult symlink(const QString &target, const QString &dest, KIO::JobFlags flags); 0042 KIO::WorkerResult mkdir(const QString &path); 0043 KIO::WorkerResult setModificationTime(const QString &path, const QDateTime &mtime); 0044 0045 private: 0046 AfcDevice *m_device = nullptr; 0047 QString m_appId; 0048 0049 afc_client_t m_client = nullptr; 0050 house_arrest_client_t m_houseArrestClient = nullptr; 0051 0052 Q_DISABLE_COPY(AfcClient) 0053 };