128 lines
2.1 KiB
C++
128 lines
2.1 KiB
C++
#include "HttpHeaders.h"
|
|
#include <algorithm>
|
|
|
|
|
|
namespace Http {
|
|
|
|
HttpHeaders::HttpHeaders()
|
|
{
|
|
}
|
|
|
|
HttpHeaders::~HttpHeaders()
|
|
{
|
|
}
|
|
|
|
HttpHeaders::iterator HttpHeaders::begin()
|
|
{
|
|
return m_headers.begin();
|
|
}
|
|
|
|
HttpHeaders::const_iterator HttpHeaders::begin() const
|
|
{
|
|
return m_headers.begin();
|
|
}
|
|
|
|
HttpHeaders::iterator HttpHeaders::end()
|
|
{
|
|
return m_headers.end();
|
|
}
|
|
|
|
HttpHeaders::const_iterator HttpHeaders::end() const
|
|
{
|
|
return m_headers.end();
|
|
}
|
|
|
|
HttpHeaders::reference HttpHeaders::front()
|
|
{
|
|
return m_headers.front();
|
|
}
|
|
|
|
HttpHeaders::const_reference HttpHeaders::front() const
|
|
{
|
|
return m_headers.front();
|
|
}
|
|
|
|
HttpHeaders::reference HttpHeaders::back()
|
|
{
|
|
return m_headers.back();
|
|
}
|
|
|
|
HttpHeaders::const_reference HttpHeaders::back() const
|
|
{
|
|
return m_headers.back();
|
|
}
|
|
|
|
HttpHeaders::reference HttpHeaders::at(size_t n)
|
|
{
|
|
return m_headers.at(n);
|
|
}
|
|
|
|
HttpHeaders::const_reference HttpHeaders::at(size_t n) const
|
|
{
|
|
return m_headers.at(n);
|
|
}
|
|
|
|
HttpHeaders::reference HttpHeaders::operator[](size_t n)
|
|
{
|
|
return m_headers[n];
|
|
}
|
|
|
|
HttpHeaders::const_reference HttpHeaders::operator[](size_t n) const
|
|
{
|
|
return m_headers[n];
|
|
}
|
|
|
|
size_t HttpHeaders::size() const
|
|
{
|
|
return m_headers.size();
|
|
}
|
|
|
|
bool HttpHeaders::empty() const
|
|
{
|
|
return m_headers.empty();
|
|
}
|
|
|
|
void HttpHeaders::resize(size_t n, HttpHeader h)
|
|
{
|
|
m_headers.resize(n, h);
|
|
}
|
|
|
|
void HttpHeaders::push_back(const_reference h)
|
|
{
|
|
m_headers.push_back(h);
|
|
}
|
|
|
|
void HttpHeaders::pop_back()
|
|
{
|
|
m_headers.pop_back();
|
|
}
|
|
|
|
int HttpHeaders::GetContentLength() const
|
|
{
|
|
std::vector<HttpHeader>::const_iterator iterator = std::find(begin(), end(), "Content-Length");
|
|
if (iterator != end())
|
|
return std::stoi(iterator->value);
|
|
|
|
return 0;
|
|
}
|
|
|
|
std::string HttpHeaders::GetBoundary() const
|
|
{
|
|
std::vector<HttpHeader>::const_iterator iterator = std::find(begin(), end(), "Content-Type");
|
|
if (iterator != end())
|
|
{
|
|
std::string boundaryHeader = "boundary";
|
|
std::string value = iterator->value;
|
|
size_t location = value.find(boundaryHeader);
|
|
if (location != std::string::npos)
|
|
{
|
|
location = value.find("=", location) + 1;
|
|
return value.substr(location);
|
|
}
|
|
}
|
|
|
|
return std::string();
|
|
}
|
|
|
|
} // namespace Http
|