New version

This commit is contained in:
TheDoctor
2019-10-12 18:04:36 +01:00
parent b88bed3bd0
commit 6db271bd7e
64 changed files with 2972 additions and 2222 deletions

78
include/Uri.hpp Normal file
View File

@ -0,0 +1,78 @@
// https://github.com/mfichman/http
#pragma once
#include <string>
namespace std::net
{
class Authority
{
public:
Authority(const std::string& user, const std::string& host, uint16_t port);
Authority();
const std::string& GetUser() const
{
return m_user;
}
const std::string& GetHost() const
{
return m_host;
}
uint16_t GetPort() const
{
return m_port;
}
void SetUser(const std::string& user);
void SetHost(const std::string& host);
void SetPort(uint16_t port);
private:
std::string m_user;
std::string m_host;
uint16_t m_port;
};
class Uri {
public:
Uri(const char* value);
Uri(const std::string& value);
Uri();
const std::string& GetScheme() const
{
return m_scheme;
}
const Authority& GetAuthority() const
{
return m_authority;
}
const std::string& GetPath() const
{
return m_path;
}
const std::string& GetHost() const
{
return m_authority.GetHost();
}
uint16_t GetPort() const
{
return m_authority.GetPort();
}
void SetScheme(const std::string& scheme);
void SetAuthority(const Authority& authority);
void SetPath(const std::string& path);
private:
std::string m_scheme;
Authority m_authority;
std::string m_path;
};
}