geostat/powertrail.h

63 wiersze
1.1 KiB
C++

#pragma once
#include <string>
#include <unordered_set>
#include <unordered_map>
#include <vector>
#include <ctime>
#include "cache.h"
typedef void CURL;
class Caches_in_Powertrails;
class Powertrail {
public:
uint number;
std::string name;
std::tm date;
std::string date_str;
uint treshold_perc;
std::unordered_set<std::string> caches;
uint found = 0;
bool completed = 0;
std::string link() const;
std::string link_name() const;
std::string safe_name() const;
};
class PowertrailDB {
public:
std::unordered_map<uint, Powertrail> data;
void get_trail(uint n);
CURL* curl;
std::string curl_output;
PowertrailDB();
~PowertrailDB();
void read_from_json(std::string file);
void save_to_json(std::string file);
private:
static size_t write_cb(char* ptr, size_t size, size_t nmemb, void* userdata);
};
class Caches_in_Powertrails {
public:
std::unordered_map<std::string, int> data;
Caches_in_Powertrails(const PowertrailDB& db);
Caches_in_Powertrails(){};
void read_from_json(std::string file);
void save_to_json(std::string file);
private:
};
typedef std::vector<const Powertrail*> pPowertrails;