-
Notifications
You must be signed in to change notification settings - Fork 149
Expand file tree
/
Copy pathHTTPHeaders.cpp
More file actions
61 lines (50 loc) · 1.43 KB
/
HTTPHeaders.cpp
File metadata and controls
61 lines (50 loc) · 1.43 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include "HTTPHeaders.hpp"
namespace httpsserver {
HTTPHeaders::HTTPHeaders() {
_headers = new std::vector<HTTPHeader *>();
}
HTTPHeaders::~HTTPHeaders() {
clearAll();
delete _headers;
}
HTTPHeader * HTTPHeaders::get(std::string const &name) {
std::string normalizedName = normalizeHeaderName(name);
for(std::vector<HTTPHeader*>::iterator header = _headers->begin(); header != _headers->end(); ++header) {
if ((*header)->_name.compare(normalizedName)==0) {
return (*header);
}
}
return NULL;
}
std::string HTTPHeaders::getValue(std::string const &name) {
std::string normalizedName = normalizeHeaderName(name);
for(std::vector<HTTPHeader*>::iterator header = _headers->begin(); header != _headers->end(); ++header) {
if ((*header)->_name.compare(normalizedName)==0) {
return ((*header)->_value);
}
}
return "";
}
void HTTPHeaders::set(HTTPHeader * header) {
for(int i = 0; i < _headers->size(); i++) {
if ((*_headers)[i]->_name.compare(header->_name)==0) {
delete (*_headers)[i];
(*_headers)[i] = header;
return;
}
}
_headers->push_back(header);
}
std::vector<HTTPHeader *> * HTTPHeaders::getAll() {
return _headers;
}
/**
* Deletes all headers
*/
void HTTPHeaders::clearAll() {
for(std::vector<HTTPHeader*>::iterator header = _headers->begin(); header != _headers->end(); ++header) {
delete (*header);
}
_headers->clear();
}
} /* namespace httpsserver */