logos-storage-app-skeleton/src/StorageBackend.h

99 lines
2.7 KiB
C
Raw Normal View History

2026-01-30 21:15:18 +04:00
#pragma once
#include "logos_api.h"
#include "logos_sdk.h"
#include <QObject>
#include <QString>
#include <QStringList>
#include <QTimer>
#include <QtQml/qqml.h>
static const int RET_OK = 0;
2026-02-10 13:27:11 +04:00
static const int RET_PROGRESS = 3;
2026-01-30 21:15:18 +04:00
class StorageBackend : public QObject {
Q_OBJECT
QML_ELEMENT
2026-02-10 13:27:11 +04:00
Q_PROPERTY(bool canStartStop READ canStartStop NOTIFY statusChanged)
Q_PROPERTY(bool isRunning READ isRunning NOTIFY statusChanged)
Q_PROPERTY(bool showDebug READ showDebug WRITE setShowDebug NOTIFY showDebugChanged)
Q_PROPERTY(QString startStopText READ startStopText NOTIFY statusChanged)
Q_PROPERTY(QString statusText READ statusText NOTIFY statusChanged)
Q_PROPERTY(QString cidText READ cidText NOTIFY cidChanged)
Q_PROPERTY(QString peerId READ peerId WRITE setPeerId NOTIFY peerIdChanged)
Q_PROPERTY(QString debugLogs READ debugLogs NOTIFY debugLogsChanged)
2026-01-30 21:15:18 +04:00
public:
enum StorageStatus { Stopped = 0, Starting, Running, Stopping, Destroyed };
Q_ENUM(StorageStatus)
QString startStopText() const;
QString statusText() const;
2026-02-10 13:27:11 +04:00
QString cidText() const;
QString peerId() const;
QString debugLogs() const;
bool showDebug() const;
bool canStartStop() const;
bool isRunning() const;
void setPeerId(const QString& peerId);
void setShowDebug(const bool showDebug);
2026-01-30 21:15:18 +04:00
explicit StorageBackend(LogosAPI* logosAPI = nullptr, QObject* parent = nullptr);
~StorageBackend();
public slots:
void startStop();
void destroy();
bool isRunning();
void stop();
2026-02-10 13:27:11 +04:00
void tryPeerConnect();
void tryDebug();
void tryUpload();
void tryUploadFinalize();
void exists(const QString& cid);
void remove(const QString& cid);
void fetch(const QString& cid);
void tryUploadFile(const QUrl& url);
void tryDownloadFile(const QString& cid, const QUrl& url);
void dataDir();
void version();
void spr();
void showPeerId();
void downloadManifest(const QString& cid);
void downloadManifests();
void space();
void updateLogLevel(const QString& logLevel);
bool isInitialised() const;
2026-01-30 21:15:18 +04:00
signals:
void statusChanged();
2026-02-10 13:27:11 +04:00
void peerIdChanged();
void showDebugChanged();
void debugLogsChanged();
void cidChanged();
2026-01-30 21:15:18 +04:00
void stopped();
2026-02-10 13:27:11 +04:00
void test(int code, const QString& msg);
2026-01-30 21:15:18 +04:00
private slots:
private:
2026-02-10 13:27:11 +04:00
void setStatus(StorageStatus newStatus, const QString& statusText);
void peerConnect(const QString& peerId);
void debug(const QString& log);
2026-01-30 21:15:18 +04:00
void initStorage();
StorageStatus m_status;
LogosAPI* m_logosAPI;
LogosModules* m_logos;
QString m_statusText;
2026-02-10 13:27:11 +04:00
QString m_cid;
QString m_sessionId;
QString m_peerId;
QString m_debugLogs;
bool m_showDebug;
2026-01-30 21:15:18 +04:00
};