File indexing completed on 2024-04-21 16:11:33

0001 /*
0002  *  SPDX-FileCopyrightText: 2013 Alejandro Fiestas Fiestas <afiestas@kde.org>
0003  *  SPDX-FileCopyrightText: 2014-2015 David Rosca <nowrep@gmail.com>
0004  *
0005  *  SPDX-License-Identifier: GPL-2.0-or-later
0006  */
0007 
0008 #ifndef OBEXFTP_H
0009 #define OBEXFTP_H
0010 
0011 #include <QDBusAbstractAdaptor>
0012 #include <QDBusMessage>
0013 #include <QHash>
0014 
0015 #include <BluezQt/Manager>
0016 
0017 class QDBusPendingCallWatcher;
0018 
0019 class BlueDevilDaemon;
0020 
0021 class Q_DECL_EXPORT ObexFtp : public QDBusAbstractAdaptor
0022 {
0023     Q_OBJECT
0024     Q_CLASSINFO("D-Bus Interface", "org.kde.BlueDevil.ObexFtp")
0025 
0026 public:
0027     explicit ObexFtp(BlueDevilDaemon *daemon);
0028 
0029     Q_SCRIPTABLE bool isOnline();
0030     Q_SCRIPTABLE QString preferredTarget(const QString &address);
0031     Q_SCRIPTABLE QString session(const QString &address, const QString &target, const QDBusMessage &msg);
0032     Q_SCRIPTABLE bool cancelTransfer(const QString &transfer, const QDBusMessage &msg);
0033 
0034 private Q_SLOTS:
0035     void createSessionFinished(BluezQt::PendingCall *call);
0036     void cancelTransferFinished(QDBusPendingCallWatcher *watcher);
0037     void sessionRemoved(BluezQt::ObexSessionPtr session);
0038 
0039 private:
0040     BlueDevilDaemon *const m_daemon;
0041     QHash<QString, QString> m_sessionMap;
0042     QHash<QString, QList<QDBusMessage>> m_pendingSessions;
0043 };
0044 
0045 #endif // OBEXFTP_H