2016-10-02 21:59:28 +02:00
|
|
|
#ifndef CLI_APPLICATION_H
|
|
|
|
#define CLI_APPLICATION_H
|
|
|
|
|
|
|
|
#include "./args.h"
|
|
|
|
|
|
|
|
#include "../connector/syncthingconnection.h"
|
|
|
|
#include "../connector/syncthingconnectionsettings.h"
|
|
|
|
|
|
|
|
#include <QObject>
|
|
|
|
|
2016-10-17 22:49:22 +02:00
|
|
|
#include <tuple>
|
|
|
|
|
2016-10-02 21:59:28 +02:00
|
|
|
namespace Cli {
|
|
|
|
|
2017-05-01 03:34:43 +02:00
|
|
|
enum class OperationType { Status, PauseResume };
|
2017-02-23 17:47:19 +01:00
|
|
|
|
2017-05-01 03:34:43 +02:00
|
|
|
class Application : public QObject {
|
2016-10-02 21:59:28 +02:00
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
public:
|
|
|
|
Application();
|
|
|
|
~Application();
|
|
|
|
|
|
|
|
int exec(int argc, const char *const *argv);
|
|
|
|
|
|
|
|
private slots:
|
|
|
|
void handleStatusChanged(Data::SyncthingStatus newStatus);
|
|
|
|
void handleResponse();
|
2017-08-20 01:20:47 +02:00
|
|
|
void handleError(
|
|
|
|
const QString &message, Data::SyncthingErrorCategory category, int networkError, const QNetworkRequest &request, const QByteArray &response);
|
2016-10-17 22:49:22 +02:00
|
|
|
void findRelevantDirsAndDevs();
|
2017-02-23 17:47:19 +01:00
|
|
|
void findRelevantDirsAndDevs(OperationType operationType);
|
2017-04-06 00:08:24 +02:00
|
|
|
bool findPwd();
|
2016-10-02 21:59:28 +02:00
|
|
|
|
|
|
|
private:
|
|
|
|
void requestLog(const ArgumentOccurrence &);
|
2016-10-02 22:16:43 +02:00
|
|
|
void requestShutdown(const ArgumentOccurrence &);
|
2016-10-02 21:59:28 +02:00
|
|
|
void requestRestart(const ArgumentOccurrence &);
|
|
|
|
void requestRescan(const ArgumentOccurrence &occurrence);
|
|
|
|
void requestRescanAll(const ArgumentOccurrence &);
|
2017-02-23 17:47:19 +01:00
|
|
|
void requestPauseResume(bool pause);
|
|
|
|
void requestPauseAllDevs(const ArgumentOccurrence &);
|
|
|
|
void requestPauseAllDirs(const ArgumentOccurrence &);
|
|
|
|
void requestResumeAllDevs(const ArgumentOccurrence &);
|
|
|
|
void requestResumeAllDirs(const ArgumentOccurrence &);
|
2017-03-29 23:17:53 +02:00
|
|
|
static void printDir(const Data::SyncthingDir *dir);
|
|
|
|
static void printDev(const Data::SyncthingDev *dev);
|
2016-10-02 21:59:28 +02:00
|
|
|
void printStatus(const ArgumentOccurrence &);
|
2017-03-29 23:17:53 +02:00
|
|
|
static void printLog(const std::vector<Data::SyncthingLogEntry> &logEntries);
|
2016-10-17 22:49:22 +02:00
|
|
|
void initWaitForIdle(const ArgumentOccurrence &);
|
|
|
|
void waitForIdle();
|
2017-04-06 00:08:24 +02:00
|
|
|
void checkPwdOperationPresent(const ArgumentOccurrence &occurrence);
|
|
|
|
void printPwdStatus(const ArgumentOccurrence &occurrence);
|
|
|
|
void requestRescanPwd(const ArgumentOccurrence &occurrence);
|
|
|
|
void requestPausePwd(const ArgumentOccurrence &occurrence);
|
|
|
|
void requestResumePwd(const ArgumentOccurrence &occurrence);
|
2016-10-02 21:59:28 +02:00
|
|
|
|
|
|
|
Args m_args;
|
|
|
|
Data::SyncthingConnectionSettings m_settings;
|
|
|
|
Data::SyncthingConnection m_connection;
|
|
|
|
size_t m_expectedResponse;
|
2017-03-29 23:17:53 +02:00
|
|
|
bool m_preventDisconnect;
|
|
|
|
bool m_callbacksInvoked;
|
2016-10-17 22:49:22 +02:00
|
|
|
std::vector<const Data::SyncthingDir *> m_relevantDirs;
|
|
|
|
std::vector<const Data::SyncthingDev *> m_relevantDevs;
|
2017-04-06 00:08:24 +02:00
|
|
|
const Data::SyncthingDir *m_pwd;
|
|
|
|
QString m_relativePath;
|
2016-10-02 21:59:28 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
} // namespace Cli
|
|
|
|
|
|
|
|
#endif // CLI_APPLICATION_H
|