how-to-use/cpp/demo/net/multi_thread_down.h

38 lines
723 B
C
Raw Normal View History

#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