CppCMS

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- File List
- File Members

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;
154 booster::copy_ptr<_data> d;
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
booster::locale::as::domain
details::set_domain domain(std::string const &id)
Definition: message.h:789
booster::locale::operator<<
std::basic_ostream< CharType > & operator<<(std::basic_ostream< CharType > &out, date_time const &t)
Definition: date_time.h:874
booster::copy_ptr< _data >
cppcms
This is the namespace where all CppCMS functionality is placed.
Definition: application.h:19
cppcms::http::cookie
Class that represents single HTTP Cookie Generally used in context of http::request and http::respons...
Definition: http_cookie.h:27