More imports

This commit is contained in:
flamingcow
2019-05-04 23:21:33 -07:00
parent 9d83f21dfa
commit 5c8bd9e095
6 changed files with 360 additions and 1 deletions

33
connection.h Normal file
View File

@@ -0,0 +1,33 @@
#pragma once
#include <functional>
#include <sys/uio.h>
#include <unordered_map>
#include <unordered_set>
#include "request.h"
#include "stream_buffer.h"
namespace firecgi {
class Connection {
public:
Connection(int sock, const sockaddr_in6& client_addr, const std::function<void(std::unique_ptr<Request>)>& callback, const std::unordered_set<std::string_view>& headers);
~Connection();
[[nodiscard]] int Read();
[[nodiscard]] bool Write(const std::vector<iovec>& vecs);
private:
const int sock_;
const std::function<void(std::unique_ptr<Request>)>& callback_;
const std::unordered_set<std::string_view>& headers_;
uint64_t requests_ = 0;
StreamBuffer buf_;
std::unique_ptr<Request> request_;
};
} // namespace firecgi