/** pahooCache.hpp
 * キャッシュ処理に関わるクラス：C++ヘッダ
 *
 * @copyright	(c)studio pahoo
 * @author		パパぱふぅ
 * @動作環境	MinGW C++
 */
#ifndef PAHOOCACHE_H
#define PAHOOCACHE_H

#include <stdlib.h>
#include <tchar.h>
#include <string>

#define LIFE_CACHE		(2 * 60)	// キャッシュ保持時間（デフォルト；分）
#define DEF_DIRCACHE ".\\pcache\\"	// キャッシュ・ディレクトリ（デフォルト）

// クラス定義
class pahooCache {

public:
// コンストラクタ
pahooCache(unsigned int life, std::string dir, const std::string ua);
~pahooCache();

unsigned int lifeCache = LIFE_CACHE;	// キャッシュ保持時間(分)(0：キャッシュしない)
std::string  dirCache = DEF_DIRCACHE;	// キャッシュ用ディレクトリ
std::string  userAgent = "";	// UserAgent
std::wstring errmsg = L"";		// エラーメッセージ
std::string  debug = "";		// デバッグ用ファイル名

bool isError(void);
std::wstring getError(void);
void resetError(void);
std::string getDirCache(void);
unsigned int delCache(std::string pat, unsigned int life);
bool cLoad(std::string url, std::string* contents);
bool forceLoad(std::string url, std::string* contents);
bool load(std::string url, std::string* contents);

private:
std::string md5(std::string str);

};

#endif
