From e297dbd8052ef4e66f069e2dd1865ae7fa8af28e Mon Sep 17 00:00:00 2001 From: Thomas Preud'homme Date: Thu, 21 Mar 2013 11:01:59 +0100 Subject: Imported Upstream version 0.3.1.0 --- Core.h | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 62 insertions(+), 12 deletions(-) (limited to 'Core.h') diff --git a/Core.h b/Core.h index c0f948e..a3a9c2a 100644 --- a/Core.h +++ b/Core.h @@ -50,9 +50,9 @@ class Core : public QObject, public GlobalClass CopyMode mode; quint64 numberOfFile; quint64 numberOfTransferedFile; - quint64 sizeToCopy; + quint64 currentProgression,totalProgression;//store the file byte transfered, used into the remaining time EngineActionInProgress action; - quint64 lastProgression;//store the real byte transfered, used in time remaining calculation + quint64 lastProgression;//store the real byte transfered, used in speed calculation QList lastSpeedDetected;//stored in bytes QList lastSpeedTime;//stored in ms QList transferItemList;//full info of started item, to have wich progression to poll @@ -72,27 +72,55 @@ class Core : public QObject, public GlobalClass bool copyEngineIsSync; }; QList copyList; - int openNewCopy(const CopyMode &mode,const bool &ignoreMode,const QStringList &protocolsUsedForTheSources=QStringList(),const QString &protocolsUsedForTheDestination=""); - int openNewCopy(const CopyMode &mode,const bool &ignoreMode,const QString &name); - int incrementId(); - int nextId; - QList idList; - QTime lastProgressionTime; + /** open with specific source/destination + \param move Copy or move + \param ignoreMode if need ignore the mode + \param protocolsUsedForTheSources protocols used for sources + \param protocolsUsedForTheDestination protocols used for destination + */ + int openNewCopyEngineInstance(const CopyMode &mode,const bool &ignoreMode,const QStringList &protocolsUsedForTheSources=QStringList(),const QString &protocolsUsedForTheDestination=""); + /** open with specific copy engine + \param move Copy or move + \param ignoreMode if need ignore the mode + \param protocolsUsedForTheSources protocols used for sources + \param protocolsUsedForTheDestination protocols used for destination + */ + int openNewCopyEngineInstance(const CopyMode &mode,const bool &ignoreMode,const QString &name); + + /// \brief get the right copy instance (copy engine + interface), by signal emited from copy engine int indexCopySenderCopyEngine(); + /// \brief get the right copy instance (copy engine + interface), by signal emited from interface int indexCopySenderInterface(); + void connectEngine(const int &index); void connectInterfaceAndSync(const int &index); void disconnectEngine(const int &index); void disconnectInterface(const int &index); - void periodiqueSync(const int &index); - QTimer forUpateInformation; + + /** \brief update at periodic interval, the synchronization between copy engine and interface, but for specific entry + \see forUpateInformation */ + void periodicSynchronization(const int &index); + + //for the internal management + int incrementId(); + int nextId; + QList idList; + QTime lastProgressionTime; + QTimer forUpateInformation;///< used to call \see periodicSynchronization() void resetSpeedDetected(const int &index); + + /** Connect the copy engine instance provided previously to the management */ int connectCopyEngine(const CopyMode &mode,bool ignoreMode,const CopyEngineManager::returnCopyEngine &returnInformations); - LogThread log; + + LogThread log;///< To save the log like mkpath, rmpath, error, copy, ... //temp variable int index,index_sub_loop,loop_size,loop_sub_size; double totTime; double totSpeed; + quint64 realByteTransfered; + quint64 transferSpeed; + quint64 transferAddedTime; + quint64 diffCopiedSize; signals: void copyFinished(const quint32 & orderId,bool withError); void copyCanceled(const quint32 & orderId); @@ -109,28 +137,50 @@ class Core : public QObject, public GlobalClass void addWindowCopyMove(const CopyMode &mode,const QString &name); /** \brief open transfer (copy+move) windows with specific engine */ void addWindowTransfer(const QString &name); + /** new transfer list pased by the CLI */ + void newTransferList(QString engine,QString mode,QString file); private slots: + /// \brief the copy engine have canceled the transfer void copyInstanceCanceledByEngine(); + /// \brief the interface have canceled the transfer void copyInstanceCanceledByInterface(); + /// \brief the transfer have been canceled void copyInstanceCanceledByIndex(const int &index); + /// \brief only when the copy engine say it's ready to delete them self, it call this + void deleteCopyEngine(); + + // some stat update void actionInProgess(const EngineActionInProgress &action); void newFolderListing(const QString &path); void newCollisionAction(const QString &action); void newErrorAction(const QString &action); void isInPause(const bool&); - void periodiqueSync(); + + /** \brief update at periodic interval, the synchronization between copy engine and interface + \see forUpateInformation */ + void periodicSynchronization(); + + //reset some information void resetSpeedDetectedEngine(); void resetSpeedDetectedInterface(); + + //load the interface void loadInterface(); void unloadInterface(); + //error occurred void error(const QString &path,const quint64 &size,const QDateTime &mtime,const QString &error); //for the extra logging void rmPath(const QString &path); void mkPath(const QString &path); + + /// \brief used to drag and drop files void urlDropped(const QList &urls); + /// \brief to rsync after a new interface connection void syncReady(); + void getActionOnList(const QList & actionList); + void pushGeneralProgression(const quint64 ¤t,const quint64 &total); }; #endif // CORE_H -- cgit v1.2.3