ZenLib
Http_Cookies.h
Go to the documentation of this file.
1 /* Copyright (c) MediaArea.net SARL. All Rights Reserved.
2  *
3  * Use of this source code is governed by a zlib-style license that can
4  * be found in the License.txt file in the root of the source tree.
5  */
6 
7 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
8 //
9 // Cookies handling
10 //
11 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
12 
13 //---------------------------------------------------------------------------
14 #ifndef ZenLib_Format_Http_CookiesH
15 #define ZenLib_Format_Http_CookiesH
16 //---------------------------------------------------------------------------
17 
18 //---------------------------------------------------------------------------
19 #include <string>
20 #include <ctime>
21 #include <map>
22 #include <sstream>
23 //---------------------------------------------------------------------------
24 
25 namespace ZenLib
26 {
27 
28 namespace Format
29 {
30 
31 namespace Http
32 {
33 
34 //***************************************************************************
35 /// @brief
36 //***************************************************************************
37 
38 struct Cookie
39 {
40  std::string Value;
41  std::time_t Expires;
42  std::string Path;
43  std::string Domain;
44  bool Secure;
45 
47  {
48  Expires=0;
49  Secure=false;
50  }
51 };
52 
53 extern std::string EmptyString; //Must not change
54 
55 class Cookies : public std::map<std::string, Cookie>
56 {
57 public :
58  //Constructor/Destructor
59  Cookies();
60 
61  //Helpers
62  size_t Set(const std::string &Name, const std::string &Value=EmptyString, std::time_t Expires=(std::time_t)-1, const std::string &Path=EmptyString, const std::string &Domain=EmptyString, bool Secure=false);
63  Cookie &Get(const std::string &Name);
64  void Create_Lines(std::ostream& Out);
65 };
66 
67 } //Namespace
68 
69 } //Namespace
70 
71 } //Namespace
72 
73 #endif
ZenLib::Format::Http::Cookie::Expires
std::time_t Expires
Definition: Http_Cookies.h:41
ZenLib::Format::Http::Cookie::Domain
std::string Domain
Definition: Http_Cookies.h:43
ZenLib::Format::Http::Cookie::Value
std::string Value
Definition: Http_Cookies.h:40
ZenLib::Format::Http::Cookies::Get
Cookie & Get(const std::string &Name)
ZenLib::Format::Http::Cookies::Create_Lines
void Create_Lines(std::ostream &Out)
ZenLib::Format::Http::Cookie::Secure
bool Secure
Definition: Http_Cookies.h:44
ZenLib::Format::Http::Cookies
Definition: Http_Cookies.h:55
ZenLib::Format::Http::Cookies::Set
size_t Set(const std::string &Name, const std::string &Value=EmptyString, std::time_t Expires=(std::time_t) -1, const std::string &Path=EmptyString, const std::string &Domain=EmptyString, bool Secure=false)
ZenLib::Format::Http::Cookie::Path
std::string Path
Definition: Http_Cookies.h:42
ZenLib::Format::Http::Cookie
Definition: Http_Cookies.h:38
ZenLib
Definition: BitStream.h:23
ZenLib::Format::Http::Cookie::Cookie
Cookie()
Definition: Http_Cookies.h:46
ZenLib::Format::Http::EmptyString
std::string EmptyString
ZenLib::Format::Http::Cookies::Cookies
Cookies()