/* */ #ifndef _D_COOKIE_STORAGE_H_ #define _D_COOKIE_STORAGE_H_ #include "common.h" #include "a2time.h" #include "Cookie.h" #include "CookieParser.h" #include #include namespace aria2 { class Logger; class CookieStorage { private: std::deque _cookies; CookieParser _parser; Logger* _logger; void storeCookies(const std::deque& cookies); public: CookieStorage(); ~CookieStorage(); // Returns true if cookie is stored or updated existing cookie. // Returns false if cookie is expired. bool store(const Cookie& cookie); // Returns true if cookie is stored or updated existing cookie. // Otherwise, returns false. bool parseAndStore(const std::string& setCookieString, const std::string& requestHost, const std::string& requestPath); std::deque criteriaFind(const std::string& requestHost, const std::string& requestPath, time_t date, bool secure) const; void load(const std::string& filename); size_t size() const; std::deque::const_iterator begin() const { return _cookies.begin(); } std::deque::const_iterator end() const { return _cookies.end(); } }; } // namespace aria2 #endif // _D_COOKIE_STORAGE_H_