37 lines
623 B
C++
37 lines
623 B
C++
|
#pragma once
|
||
|
|
||
|
#include "io/network/tcp_stream.hpp"
|
||
|
|
||
|
namespace htpp
|
||
|
{
|
||
|
using memory::literals::operator "" _kB;
|
||
|
|
||
|
class Connection
|
||
|
{
|
||
|
Connection(io::Socket&& socket) : stream(std::move(socket))
|
||
|
{
|
||
|
stream.data = this;
|
||
|
}
|
||
|
|
||
|
void close()
|
||
|
{
|
||
|
delete reinterpret_cast<Connection*>(stream.data);
|
||
|
}
|
||
|
|
||
|
struct Buffers
|
||
|
{
|
||
|
char headers[8_kB];
|
||
|
char body[64_kB];
|
||
|
|
||
|
static constexpr size_t size = sizeof headers + sizeof body;
|
||
|
};
|
||
|
|
||
|
// tcp stream reads into these buffers
|
||
|
Buffers buffers;
|
||
|
|
||
|
// tcp stream this connection reads from
|
||
|
io::TcpStream stream;
|
||
|
};
|
||
|
|
||
|
}
|