trans: 1.basic trans logic. 2.ico res.
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
|
||||
#include <QFile>
|
||||
#include <QMap>
|
||||
#include <QMutex>
|
||||
#include <QVector>
|
||||
|
||||
#include "ClientCore.h"
|
||||
@@ -18,7 +19,7 @@ struct TransTask {
|
||||
};
|
||||
|
||||
enum class TaskState {
|
||||
STATE_READY = 0,
|
||||
STATE_NONE = 0,
|
||||
STATE_RUNNING,
|
||||
STATE_FAILED,
|
||||
STATE_FINISH,
|
||||
@@ -26,10 +27,25 @@ enum class TaskState {
|
||||
|
||||
struct DoTransTask {
|
||||
QFile file;
|
||||
TaskState state;
|
||||
TaskState state = TaskState::STATE_NONE;
|
||||
TransTask task;
|
||||
};
|
||||
|
||||
class SendThread : public QThread
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
SendThread(ClientCore* clientCore);
|
||||
|
||||
public:
|
||||
void run() override;
|
||||
void setTask(const QSharedPointer<DoTransTask>& task);
|
||||
|
||||
private:
|
||||
ClientCore* cliCore_;
|
||||
QSharedPointer<DoTransTask> task_;
|
||||
};
|
||||
|
||||
class FileTrans : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
@@ -42,12 +58,30 @@ public:
|
||||
|
||||
private:
|
||||
void fbtReqSend(QSharedPointer<FrameBuffer> frame);
|
||||
void fbtReqRecv(QSharedPointer<FrameBuffer> frame);
|
||||
void fbtTransDone(QSharedPointer<FrameBuffer> frame);
|
||||
void fbtAnsRecvSuccess(QSharedPointer<FrameBuffer> frame);
|
||||
void fbtAnsRecvFailed(QSharedPointer<FrameBuffer> frame);
|
||||
void fbtFileTrans(QSharedPointer<FrameBuffer> frame);
|
||||
void fbtAnsSendFailed(QSharedPointer<FrameBuffer> frame);
|
||||
void fbtAnsSendSuccess(QSharedPointer<FrameBuffer> frame);
|
||||
void fbtFileTransFailed(QSharedPointer<FrameBuffer> frame);
|
||||
|
||||
private:
|
||||
void SendFile(const QSharedPointer<DoTransTask>& task);
|
||||
|
||||
private:
|
||||
DoTransTask downTask_;
|
||||
QVector<TransTask> tasks_;
|
||||
|
||||
QMutex lMut_;
|
||||
QMutex rMut_;
|
||||
QVector<TransTask> localTasks_;
|
||||
QVector<TransTask> remoteTasks_;
|
||||
|
||||
ClientCore* clientCore_;
|
||||
QMap<QString, DoTransTask> upTasks_;
|
||||
QMutex sthMut_;
|
||||
QVector<QThread*> sendThreads_;
|
||||
QMap<QString, QThread*> upTasks_;
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user