NS-3 based Named Data Networking (NDN) simulator
ndnSIM 2.5: NDN, CCN, CCNx, content centric networks
API Documentation
response.hpp
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2014, Peter Thorson. All rights reserved.
3
*
4
* Redistribution and use in source and binary forms, with or without
5
* modification, are permitted provided that the following conditions are met:
6
* * Redistributions of source code must retain the above copyright
7
* notice, this list of conditions and the following disclaimer.
8
* * Redistributions in binary form must reproduce the above copyright
9
* notice, this list of conditions and the following disclaimer in the
10
* documentation and/or other materials provided with the distribution.
11
* * Neither the name of the WebSocket++ Project nor the
12
* names of its contributors may be used to endorse or promote products
13
* derived from this software without specific prior written permission.
14
*
15
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
16
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18
* ARE DISCLAIMED. IN NO EVENT SHALL PETER THORSON BE LIABLE FOR ANY
19
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
22
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
24
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25
*
26
*/
27
28
#ifndef HTTP_PARSER_RESPONSE_HPP
29
#define HTTP_PARSER_RESPONSE_HPP
30
31
#include <iostream>
32
#include <string>
33
34
#include <
websocketpp/http/parser.hpp
>
35
36
namespace
websocketpp
{
37
namespace
http {
38
namespace
parser {
39
41
57
class
response
:
public
parser
{
58
public
:
59
typedef
response
type
;
60
typedef
lib::shared_ptr<type>
ptr
;
61
62
response
()
63
: m_read(0)
64
, m_buf(lib::make_shared<
std
::string>())
65
, m_status_code(status_code::
uninitialized
)
66
, m_state(RESPONSE_LINE) {}
67
69
88
size_t
consume
(
char
const
* buf,
size_t
len);
89
91
110
size_t
consume
(std::istream & s);
111
113
116
bool
ready
()
const
{
117
return
m_state == DONE;
118
}
119
121
bool
headers_ready
()
const
{
122
return
(m_state == BODY || m_state == DONE);
123
}
124
126
std::string
raw
()
const
;
127
129
138
void
set_status
(
status_code::value
code);
139
141
149
void
set_status
(
status_code::value
code, std::string
const
& msg);
150
152
status_code::value
get_status_code
()
const
{
153
return
m_status_code;
154
}
155
157
const
std::string&
get_status_msg
()
const
{
158
return
m_status_msg;
159
}
160
private
:
162
void
process(std::string::iterator begin, std::string::iterator end);
163
165
size_t
process_body(
char
const
* buf,
size_t
len);
166
167
enum
state {
168
RESPONSE_LINE = 0,
169
HEADERS = 1,
170
BODY = 2,
171
DONE = 3
172
};
173
174
std::string m_status_msg;
175
size_t
m_read;
176
lib::shared_ptr<std::string> m_buf;
177
status_code::value
m_status_code;
178
state m_state;
179
180
};
181
182
}
// namespace parser
183
}
// namespace http
184
}
// namespace websocketpp
185
186
#include <
websocketpp/http/impl/response.hpp
>
187
188
#endif // HTTP_PARSER_RESPONSE_HPP
websocketpp::http::parser::response::ready
bool ready() const
Returns true if the response is ready.
Definition:
response.hpp:116
websocketpp::http::parser::response::ptr
lib::shared_ptr< type > ptr
Definition:
response.hpp:60
std
STL namespace.
websocketpp::http::parser::response::get_status_code
status_code::value get_status_code() const
Return the response status code.
Definition:
response.hpp:152
websocketpp::http::parser::response
Stores, parses, and manipulates HTTP responses.
Definition:
response.hpp:57
websocketpp::extensions::permessage_deflate::error::uninitialized
Uninitialized.
Definition:
enabled.hpp:115
websocketpp::http::parser::response::type
response type
Definition:
response.hpp:59
parser.hpp
websocketpp::http::parser::response::raw
std::string raw() const
Returns the full raw response.
Definition:
response.hpp:178
websocketpp
Namespace for the WebSocket++ project.
Definition:
base64.hpp:41
websocketpp::http::status_code::value
value
Definition:
constants.hpp:122
websocketpp::http::parser::response::set_status
void set_status(status_code::value code)
Set response status code and message.
Definition:
response.hpp:191
websocketpp::http::parser::parser
Base HTTP parser.
Definition:
parser.hpp:398
response.hpp
websocketpp::http::parser::response::consume
size_t consume(char const *buf, size_t len)
Process bytes in the input buffer.
Definition:
response.hpp:42
websocketpp::http::parser::response::response
response()
Definition:
response.hpp:62
websocketpp::http::parser::response::headers_ready
bool headers_ready() const
Returns true if the response headers are fully parsed.
Definition:
response.hpp:121
websocketpp::http::parser::response::get_status_msg
const std::string & get_status_msg() const
Return the response status message.
Definition:
response.hpp:157
ndnSIM
NFD
websocketpp
websocketpp
http
response.hpp
Generated on Fri May 6 2022 12:34:15 for ndnSIM by
1.8.13