#ifndef OLLIE_KIO_H #define OLLIE_KIO_H #include #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