1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
#ifndef PODBOAT_PODDLTHREAD_H_
#define PODBOAT_PODDLTHREAD_H_
#include <chrono>
#include <fstream>
#include <memory>
#include <time.h>
#include "configcontainer.h"
#include "download.h"
namespace podboat {
class PodDlThread {
public:
PodDlThread(Download* dl_, newsboat::ConfigContainer& c);
virtual ~PodDlThread();
size_t write_data(void* buffer, size_t size, size_t nmemb);
int progress(double dlnow, double dltotal);
void operator()();
protected:
double compute_kbps();
private:
void run();
Download* dl;
std::shared_ptr<std::ofstream> f;
std::chrono::time_point<std::chrono::steady_clock> tv1;
std::chrono::time_point<std::chrono::steady_clock> tv2;
size_t bytecount;
newsboat::ConfigContainer& cfg;
};
} // namespace podboat
#endif /* PODBOAT_PODDLTHREAD_H_ */
|