38 lines
		
	
	
		
			723 B
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			38 lines
		
	
	
		
			723 B
		
	
	
	
		
			C
		
	
	
	
	
	
|  | #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
 |