diff options
Diffstat (limited to 'saltoqd/fmsmanager.h')
-rw-r--r-- | saltoqd/fmsmanager.h | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/saltoqd/fmsmanager.h b/saltoqd/fmsmanager.h new file mode 100644 index 0000000..3d2ab90 --- /dev/null +++ b/saltoqd/fmsmanager.h @@ -0,0 +1,48 @@ +#ifndef FMSMANAGER_H +#define FMSMANAGER_H + +#include <QtCore/QDateTime> +#include "toqmanager.h" + +class ObexTransfer; + +class FmsManager : public QObject, public ToqManager::EndpointHandler +{ + Q_OBJECT +public: + explicit FmsManager(ObexConnection *obex, ToqManager *toq); + + void handleMessage(const ToqConnection::Message &msg) Q_DECL_OVERRIDE; + + void updateFile(const QString &path, const QByteArray &contents); + void deleteFile(const QString &path); + +private: + void handleTransferResult(const QJsonObject &msg); + +private slots: + void handleQueue(); + void handleToqDisconnected(); + void handleObexConnected(); + void handleObexDisconnected(); + void handleObexError(int response); + void cleanCurTransfer(); + +private: + struct File { + QDateTime mtime; + QByteArray contents; + quint32 checksum; + }; + +private: + ObexConnection *_obex; + ToqManager *_toq; + QMap<QString, File> _files; + QSet<QString> _pending; + ObexTransfer *_curTransfer; + int _curTransferTransactionId; + QString _curTransferPath; +}; + +#endif // FMSMANAGER_H |