CppCMS
http_cookie.h
1 //
3 // Copyright (C) 2008-2012 Artyom Beilis (Tonkikh) <artyomtnk@yahoo.com>
4 //
5 // See accompanying file COPYING.TXT file for licensing details.
6 //
8 #ifndef CPPCMS_HTTP_COOKIE_H
9 #define CPPCMS_HTTP_COOKIE_H
10 
11 #include <cppcms/defs.h>
12 #include <booster/copy_ptr.h>
13 
14 #include <string>
15 #include <iostream>
16 #include <cppcms/cstdint.h>
17 namespace cppcms { namespace http {
18 
19 class cookie;
20 std::ostream CPPCMS_API &operator<<(std::ostream &,cookie const &);
21 
26 
27 class CPPCMS_API cookie {
28 public:
32  std::string name() const;
33 
37  std::string value() const;
41  std::string path() const;
42 
46  std::string domain() const;
50  std::string comment() const;
51 
55  bool secure() const;
56 
60  void name(std::string n);
61 
65  void value(std::string v);
66 
70  void path(std::string p);
71 
75  void domain(std::string);
79  void comment(std::string);
80 
84  void expires(time_t when);
89  time_t expires() const;
90 
96  bool expires_defined() const;
100  void max_age(unsigned age);
105  unsigned max_age() const;
111  bool max_age_defined() const;
115  void browser_age();
116 
120  void secure(bool v);
121 
125  bool empty() const;
126 
127  cookie();
128  ~cookie();
129  cookie(cookie const &);
130  cookie const &operator=(cookie const &);
131 
135  cookie(std::string name,std::string value);
139  cookie(std::string name,std::string value,unsigned age);
143  cookie(std::string name,std::string value,unsigned age,std::string path,std::string domain = std::string(),std::string comment=std::string());
146  cookie(std::string name,std::string value,std::string path,std::string domain=std::string(),std::string comment=std::string());
147 
148 private:
149  friend std::ostream &operator<<(std::ostream &,cookie const &);
150 
151  void write(std::ostream &) const;
152  // for future use
153  struct _data;
155 
156  // real members
157  std::string name_;
158  std::string value_;
159  std::string path_;
160  std::string domain_;
161  std::string comment_;
162 
163  unsigned max_age_;
164 
165  uint32_t secure_ : 1;
166  uint32_t has_age_ : 1;
167  uint32_t has_expiration_: 1;
168  CPPCMS_UNUSED_MEMBER uint32_t reserved_ : 29;
169 };
170 
171 
172 
173 
174 } } //::cppcms::http
175 
176 
177 #endif
details::set_domain domain(std::string const &id)
Definition: message.h:789
std::basic_ostream< CharType > & operator<<(std::basic_ostream< CharType > &out, date_time const &t)
Definition: date_time.h:874
This is the namespace where all CppCMS functionality is placed.
Definition: application.h:19
Class that represents single HTTP Cookie Generally used in context of http::request and http::respons...
Definition: http_cookie.h:27