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 60 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 69 of file Request.cpp.

69 {
70 const std::map<std::string, std::string>::const_iterator it = cookies.find(key);
71
72 if (it != cookies.end()) {
73 return it->second;
74 }
75
76 return nullstr;
77 }
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 53 of file Request.cpp.

53 {
54 if (headers.find(key) != headers.end()) {
55 std::pair<std::multimap<std::string, std::string>::const_iterator, std::multimap<std::string, std::string>::const_iterator>
56 range = headers.equal_range(key);
57
58 if (std::distance(range.first, range.second) >= i) {
59 std::advance(range.first, i);
60 return (*(range.first)).second;
61 }
62
63 return nullstr;
64 }
65
66 return nullstr;
67 }
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::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 79 of file Request.cpp.

79 {
80 const std::map<std::string, std::string>::const_iterator it = queries.find(key);
81
82 if (it != queries.end()) {
83 return it->second;
84 }
85
86 return nullstr;
87 }
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 95 of file Request.h.

◆ SocketContext

friend class SocketContext
friend

Definition at line 93 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 91 of file Request.h.

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

◆ queries

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

◆ url


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