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