SNode.C
Loading...
Searching...
No Matches
web::http::server::Request Class Reference

#include <Request.h>

Collaboration diagram for web::http::server::Request:

Public Member Functions

 Request ()=default
 
 Request (Request &)=delete
 
 Request (Request &&) noexcept=default
 
Requestoperator= (Request &)=delete
 
Requestoperator= (Request &&) noexcept=delete
 
const std::string & get (const std::string &key, int i=0) const
 
const std::string & cookie (const std::string &key) const
 
const std::string & query (const std::string &key) const
 

Public Attributes

std::string method
 
std::string url
 
std::string httpVersion
 
int httpMajor = 0
 
int httpMinor = 0
 
CiStringMap< std::string > queries
 
CiStringMap< std::string > headers
 
CiStringMap< std::string > cookies
 
std::vector< char > body
 

Protected Attributes

ConnectionState connectionState = ConnectionState::Default
 

Private Attributes

std::string nullstr
 

Friends

class SocketContext
 
class RequestParser
 

Detailed Description

Definition at line 38 of file Request.h.

Constructor & Destructor Documentation

◆ Request() [1/3]

web::http::server::Request::Request ( )
default

◆ Request() [2/3]

web::http::server::Request::Request ( Request & )
explicitdelete

◆ Request() [3/3]

web::http::server::Request::Request ( Request && )
explicitdefaultnoexcept

Member Function Documentation

◆ cookie()

const std::string & web::http::server::Request::cookie ( const std::string & key) const

Definition at line 47 of file Request.cpp.

47 {
48 const std::map<std::string, std::string>::const_iterator it = cookies.find(key);
49
50 if (it != cookies.end()) {
51 return it->second;
52 }
53
54 return nullstr;
55 }
CiStringMap< std::string > cookies
Definition Request.h:65

◆ get()

const std::string & web::http::server::Request::get ( const std::string & key,
int i = 0 ) const

Definition at line 31 of file Request.cpp.

31 {
32 if (headers.find(key) != headers.end()) {
33 std::pair<std::multimap<std::string, std::string>::const_iterator, std::multimap<std::string, std::string>::const_iterator>
34 range = headers.equal_range(key);
35
36 if (std::distance(range.first, range.second) >= i) {
37 std::advance(range.first, i);
38 return (*(range.first)).second;
39 }
40
41 return nullstr;
42 }
43
44 return nullstr;
45 }
CiStringMap< std::string > headers
Definition Request.h:64

◆ operator=() [1/2]

Request & web::http::server::Request::operator= ( Request && )
deletenoexcept

◆ operator=() [2/2]

Request & web::http::server::Request::operator= ( Request & )
delete

◆ query()

const std::string & web::http::server::Request::query ( const std::string & key) const

Definition at line 57 of file Request.cpp.

57 {
58 const std::map<std::string, std::string>::const_iterator it = queries.find(key);
59
60 if (it != queries.end()) {
61 return it->second;
62 }
63
64 return nullstr;
65 }
CiStringMap< std::string > queries
Definition Request.h:63

Friends And Related Symbol Documentation

◆ RequestParser

friend class RequestParser
friend

Definition at line 73 of file Request.h.

◆ SocketContext

friend class SocketContext
friend

Definition at line 71 of file Request.h.

Member Data Documentation

◆ body

std::vector<char> web::http::server::Request::body

Definition at line 66 of file Request.h.

◆ connectionState

ConnectionState web::http::server::Request::connectionState = ConnectionState::Default
protected

Definition at line 53 of file Request.h.

◆ cookies

CiStringMap<std::string> web::http::server::Request::cookies

Definition at line 65 of file Request.h.

◆ headers

CiStringMap<std::string> web::http::server::Request::headers

Definition at line 64 of file Request.h.

◆ httpMajor

int web::http::server::Request::httpMajor = 0

Definition at line 60 of file Request.h.

◆ httpMinor

int web::http::server::Request::httpMinor = 0

Definition at line 61 of file Request.h.

◆ httpVersion

std::string web::http::server::Request::httpVersion

Definition at line 59 of file Request.h.

◆ method

std::string web::http::server::Request::method

Definition at line 57 of file Request.h.

◆ nullstr

std::string web::http::server::Request::nullstr
private

Definition at line 69 of file Request.h.

◆ queries

CiStringMap<std::string> web::http::server::Request::queries

Definition at line 63 of file Request.h.

◆ url

std::string web::http::server::Request::url

Definition at line 58 of file Request.h.


The documentation for this class was generated from the following files: