include/AniDBUdpClient/FileCommand \
include/AniDBUdpClient/File \
include/AniDBUdpClient/UptimeCommand \
- include/AniDBUdpClient/Hash
+ include/AniDBUdpClient/Hash \
include/AniDBUdpClient/UptimeCommand \
include(../../lib/qtstatemachine/src/qtstatemachine.pri)
#ifndef ANIDBUDPCLIENT_GLOBAL_H
#define ANIDBUDPCLIENT_GLOBAL_H
-#include <QtCore/qglobal.h>
#include <QObject>
#define CLIENT_NAME "anidbudpclient"
friend class CommandData;
Q_OBJECT
- Q_ENUMS(State Error IdlePolicy AbstractCommand::ReplyCode);
+ Q_ENUMS(AniDBUdpClient::State AniDBUdpClient::Error AniDBUdpClient::IdlePolicy AniDBUdpClientReplyCode);
Q_PROPERTY(QString host READ host WRITE setHost);
Q_PROPERTY(quint16 hostPort READ hostPort WRITE setHostPort);
{
}
-QString File::file() const
+QFileInfo File::file() const
{
return m_file;
}
-void File::setFile(const QString &file)
+void File::setFile(const QFileInfo &file)
{
+ if (m_file == file)
+ return;
+
m_file = file;
}
qint64 File::size()
{
- return m_size;
+ return m_file.size();
}
QByteArray File::ed2k()
void File::hash()
{
-
+ if (m_ed2k.isEmpty())
+ actionsQueue.enqueue(Hashing);
}
bool File::rename()
{
+ if (m_ed2k.isEmpty())
+ actionsQueue.enqueue(Hashing);
return false;
}
}
-void File::finishHashing()
+void File::finishHashing(const QFileInfo &file, const QByteArray &hash)
{
-
+ if (m_file != file)
+ return;
+ m_ed2k = hash;
+ emit finished(Hashing);
}
void File::finishRenaming()
}
+void File::startHashing()
+{
+
+}
+
+void File::startRenaming()
+{
+
+}
+
+void File::startMarking()
+{
+
+}
+
+void File::work()
+{
+ Action a = actionsQueue.dequeue();
+
+ switch (a)
+ {
+ case Hashing:
+ default:
+ break;
+ }
+}
+
} // namespace AniDBUdpClient
#include "anidbudpclient_global.h"
#include <QObject>
+#include <QFileInfo>
+#include <QQueue>
+
namespace AniDBUdpClient {
class FileCommand;
{
Q_OBJECT
- Q_PROPERTY(QString file READ file WRITE setFile);
+ Q_PROPERTY(QFileInfo file READ file WRITE setFile);
Q_PROPERTY(qint64 size READ size);
Q_PROPERTY(QByteArray ed2k READ ed2k);
File(QObject *parent = 0);
- QString file() const;
- void setFile(const QString &file);
+ QFileInfo file() const;
+ void setFile(const QFileInfo &file);
qint64 size();
QByteArray ed2k();
void finished(Action action);
private slots:
- void finishHashing();
+ void finishHashing(const QFileInfo &file, const QByteArray &hash);
void finishRenaming();
void finishMarking();
private:
+ void startHashing();
+ void startRenaming();
+ void startMarking();
+
+ void work();
+
+ QQueue<Action> actionsQueue;
- QString m_file;
- qint64 m_size;
+ QFileInfo m_file;
QByteArray m_ed2k;
};