ZenLib
Http_Handler.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 // A HTTP Request
10 //
11 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
12 
13 //---------------------------------------------------------------------------
14 #ifndef ZenLib_Format_Http_RequestH
15 #define ZenLib_Format_Http_RequestH
16 //---------------------------------------------------------------------------
17 
18 //---------------------------------------------------------------------------
20 #include <string>
21 #include <ctime>
22 #include <map>
23 #include <vector>
24 //---------------------------------------------------------------------------
25 
26 namespace ZenLib
27 {
28 
29 namespace Format
30 {
31 
32 namespace Http
33 {
34 
35 //***************************************************************************
36 /// @brief
37 //***************************************************************************
38 
39 class Handler
40 {
41 public:
42  //Constructor/Destructor
43  Handler();
44 
45  //In
46  std::string Path; //The path being requested by this request
47  std::map<std::string, std::string> Request_Headers; //All the incoming HTTP headers from the client web browser.
48  std::map<std::string, std::string> Request_Cookies; //The set of cookies that came from the client along with this request
49  std::map<std::string, std::string> Request_Queries; //All the key/value pairs in the query string of this request
50  std::string Foreign_IP; //The foreign ip address for this request
51  std::string Local_IP; //The foreign port number for this request
52  unsigned short Foreign_Port; //The IP of the local interface this request is coming in on
53  unsigned short Local_Port; //The local port number this request is coming in on
54  bool HeadersOnly; //The request requests only the header
55 
56  //Out
57  size_t Response_HTTP_Code; //HTTP code to be sent
58  std::map<std::string, std::string> Response_Headers; //Additional headers you wish to appear in the HTTP response to this request
59  Cookies Response_Cookies; //New cookies to pass back to the client along with the result of this request
60  std::string Response_Body; //To be displayed as the response to this request
61 };
62 
63 } //Namespace
64 
65 } //Namespace
66 
67 } //Namespace
68 
69 #endif