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 Member Functions

 Request (int status, const std::string &reason="")
 

Private Attributes

std::string nullstr
 
int status = 0
 
std::string reason
 

Friends

class SocketContext
 
class RequestParser
 

Detailed Description

Definition at line 60 of file Request.h.

Constructor & Destructor Documentation

◆ Request() [1/4]

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

◆ Request() [2/4]

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

◆ Request() [3/4]

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

◆ Request() [4/4]

web::http::server::Request::Request ( int  status,
const std::string &  reason = "" 
)
private

Definition at line 55 of file Request.cpp.

56 : status(status)
58 }
static std::string reason(int status)

References reason, web::http::StatusCode::reason(), and status.

Here is the call graph for this function:

Member Function Documentation

◆ cookie()

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

Definition at line 76 of file Request.cpp.

76 {
77 const std::map<std::string, std::string>::const_iterator it = cookies.find(key);
78
79 if (it != cookies.end()) {
80 return it->second;
81 }
82
83 return nullstr;
84 }
CiStringMap< std::string > cookies
Definition Request.h:87

References cookies, and nullstr.

◆ get()

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

Definition at line 60 of file Request.cpp.

60 {
61 if (headers.find(key) != headers.end()) {
62 std::pair<std::multimap<std::string, std::string>::const_iterator, std::multimap<std::string, std::string>::const_iterator>
63 range = headers.equal_range(key);
64
65 if (std::distance(range.first, range.second) >= i) {
66 std::advance(range.first, i);
67 return (*(range.first)).second;
68 }
69
70 return nullstr;
71 }
72
73 return nullstr;
74 }
CiStringMap< std::string > headers
Definition Request.h:86

References headers, and nullstr.

Referenced by web::websocket::server::SocketContextUpgradeFactory::create(), web::http::server::SocketContext::deliverRequest(), express::Request::get(), web::http::server::SocketContext::responseStarted(), web::http::server::SocketContextUpgradeFactorySelector::select(), and web::http::server::Response::upgrade().

Here is the caller graph for this function:

◆ 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 86 of file Request.cpp.

86 {
87 const std::map<std::string, std::string>::const_iterator it = queries.find(key);
88
89 if (it != queries.end()) {
90 return it->second;
91 }
92
93 return nullstr;
94 }
CiStringMap< std::string > queries
Definition Request.h:85

References nullstr, and queries.

Friends And Related Symbol Documentation

◆ RequestParser

friend class RequestParser
friend

Definition at line 99 of file Request.h.

◆ SocketContext

friend class SocketContext
friend

Definition at line 98 of file Request.h.

Member Data Documentation

◆ body

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

◆ connectionState

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

Definition at line 75 of file Request.h.

Referenced by web::http::server::RequestParser::analyzeHeader().

◆ cookies

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

◆ headers

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

◆ httpMajor

◆ httpMinor

◆ httpVersion

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

◆ method

◆ nullstr

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

Definition at line 93 of file Request.h.

Referenced by cookie(), get(), and query().

◆ queries

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

◆ reason

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

Definition at line 96 of file Request.h.

Referenced by web::http::server::SocketContext::deliverRequest(), and Request().

◆ status

int web::http::server::Request::status = 0
private

Definition at line 95 of file Request.h.

Referenced by web::http::server::SocketContext::deliverRequest(), and Request().

◆ url


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