#ifndef RECOGNIZESYSTEM_H
#define RECOGNIZESYSTEM_H

#include <QObject>
#include <QDataStream>
#include <QTcpSocket>
#include <mainwindow.h>
#include <Core\tools.h>
#include <Core\updatecontroller.h>

class UpdateController;

class RecognizeSystem : public QObject
{

    Q_OBJECT

public:
    explicit RecognizeSystem(QObject *parent = 0);
    ~RecognizeSystem();
    void Initialize(UpdateController* updateController,DataParser *dataParser);
    void Recognize(QTcpSocket *socket);

signals:
    void UpdateBytesAvailable(qint64 size,quint64 sended);
    void LoadComplete();
    void onNeedUpdate(bool flag,qint64 size);
    void onSendDebugLog(QString message);
    void SockedDisabled();
    void SaveLoginData(ServerAuthorization *serverAuth);
    void SocketWaitForReadyRead(int waitTime);

private:
    UpdateController *updateController;
    DataParser *dataParser;
    PacketType packetType;
    QString message;
    QString filePath;
    QByteArray tmpBlock;

    qint64 sizeReceiveData;
    qint64 fileSize;
    int countSend;

    void XMLParser(QByteArray array);

};

#endif // RECOGNIZESYSTEM_H
