#ifndef IDOWNLOAD_OBSERVER_H
#define IDOWNLOAD_OBSERVER_H

#include <string>
#include <vector>
#include <Windows.h>

#include "dubbing_http_global.h"

namespace DUBBING
{
    class DUBBING_HTTP_EXPORT IDownloadObserver
    {
    public:
        IDownloadObserver() {};
        virtual ~IDownloadObserver() {};

        /*
        * Download progress event
        */
        virtual void onDownloadProgress(const std::string& url, const std::wstring& localPath, double dltotal, double dlnow) = 0;

        /*
        * Download completion event
        */
        virtual void onDownloadComplete(const std::string& url, const std::wstring& localPath) = 0;

        /*
        * Download failure event
        */
        virtual void onDownloadFailed(const std::string& url, const std::wstring& localPath) = 0;

    };
}


#endif // IDOWNLOAD_OBSERVER_H
