fastcgi++
A C++ FastCGI/Web API
Classes | Namespaces | Enumerations | Functions | Variables
http.hpp File Reference

Declares elements of the HTTP protocol. More...

#include <string>
#include <ostream>
#include <istream>
#include <iterator>
#include <cstring>
#include <algorithm>
#include <map>
#include <vector>
#include <memory>
#include <array>
#include <ctime>
#include <atomic>
#include <fastcgi++/protocol.hpp>

Go to the source code of this file.

Classes

struct  Fastcgipp::Http::File< charT >
 Holds a file uploaded from the client. More...
 
class  Fastcgipp::Http::Address
 Efficiently stores IPv6 addresses. More...
 
struct  Fastcgipp::Http::Environment< charT >
 Data structure of HTTP environment data. More...
 
class  Fastcgipp::Http::SessionId
 Defines ID values for HTTP sessions. More...
 
class  Fastcgipp::Http::Sessions< T >
 Container for HTTP sessions. More...
 

Namespaces

 Fastcgipp
 Topmost namespace for the fastcgi++ library.
 
 Fastcgipp::Http
 Defines classes and functions relating to the HTTP protocol.
 

Enumerations

enum  Fastcgipp::Http::RequestMethod {
  Fastcgipp::Http::RequestMethod::ERROR =0, Fastcgipp::Http::RequestMethod::HEAD =1, Fastcgipp::Http::RequestMethod::GET =2, Fastcgipp::Http::RequestMethod::POST =3,
  Fastcgipp::Http::RequestMethod::PUT =4, Fastcgipp::Http::RequestMethod::DELETE =5, Fastcgipp::Http::RequestMethod::TRACE =6, Fastcgipp::Http::RequestMethod::OPTIONS =7,
  Fastcgipp::Http::RequestMethod::CONNECT =8
}
 The HTTP request method as an enumeration. More...
 

Functions

template<class charT , class Traits >
std::basic_ostream< charT, Traits > & Fastcgipp::Http::operator<< (std::basic_ostream< charT, Traits > &os, const RequestMethod requestMethod)
 
template<class charT , class Traits >
std::basic_ostream< charT, Traits > & Fastcgipp::Http::operator<< (std::basic_ostream< charT, Traits > &os, const Address &address)
 Address stream insertion operation. More...
 
template<class charT , class Traits >
std::basic_istream< charT, Traits > & Fastcgipp::Http::operator>> (std::basic_istream< charT, Traits > &is, Address &address)
 Address stream extractor operation. More...
 
void Fastcgipp::Http::vecToString (const char *start, const char *end, std::wstring &string)
 Convert a char array to a std::wstring. More...
 
void Fastcgipp::Http::vecToString (const char *start, const char *end, std::string &string)
 Convert a char string to a std::string. More...
 
template<class charT >
int Fastcgipp::Http::atoi (const charT *start, const charT *end)
 Convert a char string to an integer. More...
 
template<class charT >
float Fastcgipp::Http::atof (const charT *start, const charT *end)
 Convert a char string to a float. More...
 
template<class charT >
void Fastcgipp::Http::decodeUrlEncoded (const char *data, const char *dataEnd, std::multimap< std::basic_string< charT >, std::basic_string< charT >> &output, const char *const fieldSeparator="&")
 Decodes a url-encoded string into a multimap container. More...
 
char * Fastcgipp::Http::percentEscapedToRealBytes (const char *start, const char *end, char *destination)
 Convert a string with percent escaped byte values to their values. More...
 
template<class In , class Out >
Out Fastcgipp::Http::base64Encode (In start, In end, Out destination)
 Convert a binary container of data to a Base64 encoded container. More...
 
template<class In , class Out >
Out Fastcgipp::Http::base64Decode (In start, In end, Out destination)
 Convert a Base64 encoded container to a binary container. More...
 
template<class charT , class Traits >
std::basic_ostream< charT, Traits > & Fastcgipp::Http::operator<< (std::basic_ostream< charT, Traits > &os, const SessionId &x)
 Output the ID data in base64 encoding. More...
 

Variables

const std::array< const char *const, 9 > Fastcgipp::Http::requestMethodLabels
 Some textual labels for RequestMethod. More...
 
const std::array< const char, 64 > Fastcgipp::Http::base64Characters
 List of characters in order for Base64 encoding. More...
 

Detailed Description

Declares elements of the HTTP protocol.

Author
Eddie Carle <eddie.nosp@m.@isa.nosp@m.tec.c.nosp@m.a>
Date
May 3, 2017

Definition in file http.hpp.