#ifndef MULTI_DOWNLOAD_H
#define MULTI_DOWNLOAD_H

#include <curl/curl.h>
#include <iostream>
#include <fstream>
#include <chrono>

class CTimer
{
    using time_point_t = std::chrono::high_resolution_clock::time_point;
public:
    CTimer() = default;
    ~CTimer() = default;
public:
    void start();
    // 秒种
    size_t getTime();
private:
    time_point_t m_start;
    time_point_t m_end;
};

class CThreadDownload
{
public:
    CThreadDownload();
    ~CThreadDownload();
public:
    double getFileLength(const char* url);
    int download(const char* url, const char* filename);
    static size_t writeFunCall(void* ptr, size_t size, size_t mmb, void* userdata);

private:
    std::ofstream m_fstream; 
};

#endif