diff options
Diffstat (limited to 'plugins/CopyEngine/Ultracopier-0.3/TransferThread.h')
-rw-r--r-- | plugins/CopyEngine/Ultracopier-0.3/TransferThread.h | 38 |
1 files changed, 27 insertions, 11 deletions
diff --git a/plugins/CopyEngine/Ultracopier-0.3/TransferThread.h b/plugins/CopyEngine/Ultracopier-0.3/TransferThread.h index 37aa608..c32ccf3 100644 --- a/plugins/CopyEngine/Ultracopier-0.3/TransferThread.h +++ b/plugins/CopyEngine/Ultracopier-0.3/TransferThread.h @@ -27,16 +27,6 @@ class TransferThread : public QThread public: explicit TransferThread(); ~TransferThread(); - /// \brief to have the transfer status - enum TransferStat - { - Idle=0, - PreOperation=1, - WaitForTheTransfer=2, - Transfer=3, - PostTransfer=4, - PostOperation=5 - }; /// \brief get transfer stat TransferStat getStat(); /// \brief get drive of an file or folder @@ -57,6 +47,15 @@ public: quint64 transferId; /// \brief to store the transfer size quint64 transferSize; + + void set_doChecksum(bool doChecksum); + void set_checksumIgnoreIfImpossible(bool checksumIgnoreIfImpossible); + void set_checksumOnlyOnError(bool checksumOnlyOnError); + void set_osBuffer(bool osBuffer); + void set_osBufferLimited(bool osBufferLimited); + + //not copied size, because that's count to the checksum, ... + quint64 realByteTransfered(); protected: void run(); signals: @@ -114,16 +113,23 @@ public slots: qint64 copiedSize(); /// \brief put the current file at bottom void putAtBottom(); + + void set_osBufferLimit(unsigned int osBufferLimit); + void setRenamingRules(QString firstRenamingRule,QString otherRenamingRule); private slots: void preOperation(); void readIsReady(); void writeIsReady(); void readIsFinish(); + void writeIsFinish(); void readIsClosed(); void writeIsClosed(); void postOperation(); void getWriteError(); void getReadError(); + void readChecksumFinish(const QByteArray&); + void writeChecksumFinish(const QByteArray&); + void compareChecksum(); //void syncAfterErrorAndReadFinish(); void readThreadIsSeekToZeroAndWait(); void writeThreadIsReopened(); @@ -142,7 +148,7 @@ private: MoveReturn_moved=1, MoveReturn_error=2 }; - TransferStat stat; + TransferStat transfer_stat; ReadThread readThread; WriteThread writeThread; QString source; @@ -160,6 +166,7 @@ private: bool readIsClosedVariable; bool writeIsClosedVariable; bool canBeMovedDirectlyVariable; + QByteArray sourceChecksum,destinationChecksum; volatile bool stopIt; volatile bool canStartTransfer; int blockSize; @@ -174,9 +181,18 @@ private: QDateTime maxTime; int id; QSemaphore *mkpathTransfer; + bool doChecksum,real_doChecksum; + bool checksumIgnoreIfImpossible; + bool checksumOnlyOnError; + bool osBuffer; + bool osBufferLimited; + unsigned int osBufferLimit; + QString firstRenamingRule; + QString otherRenamingRule; //error management bool writeError,writeError_source_seeked,writeError_destination_reopened; bool readError; + bool fileContentError; //different pre-operation bool isSame(); bool destinationExists(); |