#ifndef CSCALLBACKSENDPROGRESS_H
#define CSCALLBACKSENDPROGRESS_H

#include "SCallback.h"

#include <QMutex>

class CSCallbackSendProgress : public CSCallback
{
public:
    CSCallbackSendProgress();
    virtual ~CSCallbackSendProgress();

    virtual void ProgressInfo(int nState);
    virtual void ProgressError(int nState);
    virtual void ProgressComplete();

    virtual void ProgressState(int nProgressBytes, int nTotalBytes);

    virtual void ProgressDICOMMake(int nCurrentFile, int nTotalFile);

    void SetTotalCount(int nCount);

    void SetExecBackground(bool bExecBackground);

    void SetExitSend(bool bExitSend);
    bool IsExitSend();

    virtual void Clear();

protected:
    int m_nPrevBytes;
    int m_nCount;
    int m_nTotalCount;

    bool m_bExecBackground;

    QMutex m_Lock;
    bool m_bExitSend;
};

#endif // CSCALLBACKSENDPROGRESS_H
