NS-3 based Named Data Networking (NDN) simulator
ndnSIM 2.3: NDN, CCN, CCNx, content centric networks
API Documentation
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
ndnSIM
ndnSIM documentation
All Attributes
All GlobalValues
All LogComponents
All TraceSources
Todo List
Deprecated List
Modules
Namespaces
Classes
Files
File List
File Members
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Modules
Pages
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::ptr
lib::shared_ptr< type > ptr
Definition:
response.hpp:60
websocketpp::http::parser::response::get_status_code
status_code::value get_status_code() const
Return the response status code.
Definition:
response.hpp:152
std
STL namespace.
websocketpp::http::parser::response
Stores, parses, and manipulates HTTP responses.
Definition:
response.hpp:57
websocketpp::http::parser::response::ready
bool ready() const
Returns true if the response is ready.
Definition:
response.hpp:116
nfd::cs::iterator
Table::const_iterator iterator
Definition:
cs-internal.hpp:41
websocketpp::extensions::permessage_deflate::error::uninitialized
Uninitialized.
Definition:
enabled.hpp:114
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::type
response type
Definition:
response.hpp:59
parser.hpp
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::get_status_msg
const std::string & get_status_msg() const
Return the response status message.
Definition:
response.hpp:157
websocketpp::http::parser::response::raw
std::string raw() const
Returns the full raw response.
Definition:
response.hpp:178
ndnSIM
NFD
websocketpp
websocketpp
http
response.hpp
Generated on Thu Nov 2 2017 03:30:30 for ndnSIM by
1.8.11