magpie
Loading...
Searching...
No Matches
Http2Adapter.hpp
1
#pragma once
2
3
#include "magpie/application/Adapter.hpp"
4
#include "magpie/transfer/Request.hpp"
5
#include "magpie/transfer/Response.hpp"
6
#include <nghttp2/nghttp2.h>
7
8
#include <openssl/ssl.h>
9
10
namespace
magpie {
class
BaseApp
; }
11
12
namespace
magpie::transport {
13
class
BaseConnection;
14
}
15
16
namespace
magpie::application {
17
18
struct
UserData
{
19
raven::Connection* conn;
20
BaseApp
* app;
21
25
std::unordered_map<int, std::shared_ptr<Request>>
requests
;
26
std::unordered_map<int, std::shared_ptr<Response>> responses;
27
std::unordered_map<int, size_t> writeOffsets;
28
};
29
30
class
Http2Adapter :
public
Adapter
{
31
private
:
32
nghttp2_session* sess;
33
nghttp2_session_callbacks* callbacks;
34
35
BaseApp
* app;
36
UserData
data;
37
public
:
38
Http2Adapter(
39
raven::Connection* conn,
40
BaseApp
* app
41
);
42
~Http2Adapter();
43
44
virtual
bool
parse(
45
const
raven::Buffer& buff,
46
std::size_t readBytes
47
)
override
;
48
49
virtual
bool
onWriteReady(
50
raven::Connection* conn,
51
raven::Buffer&
52
)
override
;
53
};
54
55
}
magpie::BaseApp
Definition
AppDecl.hpp:14
magpie::application::Adapter
Definition
Adapter.hpp:9
magpie::application::UserData
Definition
Http2Adapter.hpp:18
magpie::application::UserData::requests
std::unordered_map< int, std::shared_ptr< Request > > requests
Definition
Http2Adapter.hpp:25
src
magpie
application
Http2Adapter.hpp
Generated by
1.15.0