00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef _SWORD_NETWORK_COOKIE_
00020 #define _SWORD_NETWORK_COOKIE_
00021
00022 #include "sword/network.Url.h"
00023 #include "sword/time.Time.h"
00024 #include "sword/base.SmartPtr.h"
00025
00026 namespace sword {
00027
00029
00035 class SWORDDECL Cookie {
00036 public:
00038 Cookie(const std::string &name, const std::string &value);
00039
00041
00042 Cookie(
00043 const std::string &name, const std::string &value,
00044 const std::string &domain, const std::string &path, Time expires);
00045
00047 ~Cookie();
00048
00050 bool match(const URL &url) const;
00051
00053 bool expired() const;
00054
00056 bool transient() const;
00057
00059 const std::string &name() const;
00060
00062 const std::string &value() const;
00063
00064 private:
00065 std::string name_;
00066 std::string value_;
00067 std::string domain_;
00068 std::string path_;
00069 Time expires_;
00070 };
00071 typedef SmartPtr<Cookie> PCookie;
00072
00073 }
00074
00075 #include "sword.private/network.Cookie.inl"
00076
00077 #endif // _SWORD_NETWORK_COOKIE_