/*! * * Copyright (c) 2019-2020 Diality Inc. - All Rights Reserved. * \copyright * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. * * \file CloudSyncController.h * \author (last) Behrouz NematiPour * \author (original) Behrouz NematiPour * \date (last) 13-Oct-2021 * \date (original) 13-Oct-2021 * */ #pragma once // Qt #include #include // Project #include "main.h" // Doxygen : do not remove #include "GuiController.h" // define #define _CloudSyncController CloudSyncController::I() // forward declarations class tst_initializations; // namespace /*! * \brief The CloudSyncController class * \details Singleton class which is the main gateway of CloudSync signal/slots. */ class CloudSyncController : public QObject { Q_OBJECT // Singleton SINGLETON(CloudSyncController) // friends friend class ::tst_initializations; QThread *_thread = nullptr; bool _init = false; const QString _location = "cloudsync/"; quint64 _seq = 0; public slots: bool init(); bool init(QThread &vThread); private slots: void quit(); void onWatchFileChange (const QString &vFile); void onActionReceive (GuiActionType vAction, const QVariantList &vData); private: void initConnections(); void initThread(QThread &vThread); void quitThread(); void addWatch(); bool interpreter(const QString &vContent); // this function may later need to be a class. };