/* */ #ifndef D_COOKIE_H #define D_COOKIE_H #include "common.h" #include #include "a2time.h" namespace aria2 { class Cookie { private: std::string name_; std::string value_; time_t expiryTime_; // If persistent_ is false, this is a session scope cookie and it is // never expired during session. So isExpired() always returns // false. bool persistent_; std::string domain_; bool hostOnly_; std::string path_; bool secure_; bool httpOnly_; time_t creationTime_; time_t lastAccessTime_; public: Cookie(); Cookie (const std::string& name, const std::string& value, time_t expiryTime, bool persistent, const std::string& domain, bool hostOnly, const std::string& path, bool secure, bool httpOnly, time_t creationTime); Cookie(const Cookie& c); ~Cookie(); Cookie& operator=(const Cookie& c); std::string toString() const; bool match (const std::string& requestHost, const std::string& requestPath, time_t date, bool secure) const; bool operator==(const Cookie& cookie) const; bool isExpired(time_t base) const; const std::string& getName() const { return name_; } void setName(const std::string& name); const std::string& getValue() const { return value_; } void setValue(const std::string& value); time_t getExpiryTime() const { return expiryTime_; } void setExpiryTime(time_t expiryTime) { expiryTime_ = expiryTime; } bool getPersistent() const { return persistent_; } void setPersistent(bool persistent) { persistent_ = persistent; } const std::string& getDomain() const { return domain_; } void setDomain(const std::string& domain); bool getHostOnly() const { return hostOnly_; } void setHostOnly(bool hostOnly) { hostOnly_ = hostOnly; } const std::string& getPath() const { return path_; } void setPath(const std::string& path); bool getSecure() const { return secure_; } void setSecure(bool secure) { secure_ = secure; } bool getHttpOnly() const { return httpOnly_; } void setHttpOnly(bool httpOnly) { httpOnly_ = httpOnly; } time_t getCreationTime() const { return creationTime_; } void setCreationTime(time_t creationTime) { creationTime_ = creationTime; } time_t getLastAccessTime() const { return lastAccessTime_; } void setLastAccessTime(time_t lastAccessTime) { lastAccessTime_ = lastAccessTime; } std::string toNsCookieFormat() const; }; } // namespace aria2 #endif // D_COOKIE_H