ollie/kde/kio/ollie_kio.h

34 lines
1.1 KiB
C++

#ifndef OLLIE_KIO_H
#define OLLIE_KIO_H
#include <KIO/WorkerBase>
#include "lib9pclient.h"
// KIO worker for ollie:// URLs.
// Maps ollie:///path directly to the Ollie 9P namespace.
class OllieWorker : public KIO::WorkerBase
{
public:
OllieWorker(const QByteArray &pool, const QByteArray &app);
~OllieWorker() override;
KIO::WorkerResult listDir(const QUrl &url) override;
KIO::WorkerResult stat(const QUrl &url) override;
KIO::WorkerResult get(const QUrl &url) override;
KIO::WorkerResult put(const QUrl &url, int permissions, KIO::JobFlags flags) override;
KIO::WorkerResult mkdir(const QUrl &url, int permissions) override;
KIO::WorkerResult del(const QUrl &url, bool isFile) override;
KIO::WorkerResult rename(const QUrl &src, const QUrl &dest, KIO::JobFlags flags) override;
private:
bool ensureConnected();
QString ninepPath(const QUrl &url) const;
KIO::UDSEntry entryFromStat(const QString &path, const QString &name);
bool isDirectory(const QString &mode) const;
mode_t parseMode(const QString &mode) const;
Lib9pClient m_client;
};
#endif // OLLIE_KIO_H